class enquete{
var $titulo;
var $opcoes = array();
var $votos = array();
var $tv = array();
// construtor da classe
function enquete($codCanal = false, $codEnquete = false) {
global $db;
//selecionar o titulo...
$sql = "SELECT e.enq_id, e.enq_titulo
FROM enquete e
WHERE enq_status='Ativo'
AND enq_dtentrada < ".time()."
AND enq_dtsaida > ".time()."
ORDER BY enq_dtentrada DESC
LIMIT 1";
//die($sql);
$rs_perg=$db->Execute($sql);
$pergunta = $rs_perg->FetchRow();
//armazena o titulo em $this->titulo
$this->titulo = $pergunta[enq_titulo];
$this->id = $pergunta[enq_id];
//busca as opções da enquete
$sql_resp = "SELECT res_id, res_titulo, res_votos FROM resposta WHERE enq_id = '$this->id;' ORDER BY res_id";
$rs_resp=$db->Execute($sql_resp);
//armazena cada opção em $this->opcoes[] =
$i=0;
while($resp = $rs_resp->FetchRow()){
$this->opcoes[$i] = $resp;
$this->votos[$i] = $resp[res_votos];
$i++;
}
}
function getTitulo(){
return $this->titulo;
}
function getRespostas(){
return $this->opcoes;
}
function podeVotar() {
global $db;
//Seleciona o tipo de validação (por Cookie, ip ou ip e cookie)
$sql = "select enq_validacao from enquete
where enq_id =".$this->id;
$validacao = $db->Execute($sql);
$validacao = $validacao->FetchRow();
if($validacao['enq_validacao'] == 'COOKIE' || $validacao['enq_validacao'] == 'IP e COOKIE' )
{
// Pega as variaveis do cookie (valor e id da enquete votada)
$cookie_name = "cookie_".$this->id;
$cookie = explode(';',$_COOKIE[$cookie_name]);
if($cookie[0] == "false" && $this->id == $cookie[1])
{
return false;
}
}
if($validacao['enq_validacao'] == 'IP' || $validacao['enq_validacao'] == 'IP e COOKIE')
{
if($this->verificaIp())
{
return false;
}
}
return true;
}
function getButtonLabel($useHtml = false){
if ($useHtml){
//return "";
echo "retorna html";
}else{
if($this->podeVotar()==true){
return "Votar";
}else{
return "Resultados";
}
}
}
function getIp(){
return $_SERVER["REMOTE_ADDR"];
}
function getResultado(){
global $db;
$rsTotalVotos=$db->Execute("SELECT SUM(res_votos) total FROM resposta WHERE enq_id='$this->id'");
$t = $rsTotalVotos->FetchRow();
$rsRespostas=$db->Execute("SELECT res_titulo, res_votos FROM resposta WHERE enq_id='$this->id' ORDER BY res_id");
$i=0;
while ($res = $rsRespostas->FetchRow()){
// $tv[$i] = number_format((($res[res_votos] * 100)/$t[total]),2,'.',"")."%".$res[res_titulo];
$this->tv[$i] = number_format((($res[res_votos] * 100)/$t[total]),2,'.',"")."_".$res[res_titulo];
$i++;
}
//die($teste);
//return $tv;
return $this->tv;
}
function setVoto($resposta){
global $db, $obSistema;
// falta validar o voto
if($resposta)
{
if($this->podeVotar())
{
$rsvotos=$db->Execute("SELECT res_votos FROM resposta WHERE res_id='$resposta'");
$votos = $rsvotos->FetchRow();
$votos = $votos[res_votos]+1;
$sql_voto = $db->Execute("UPDATE resposta SET res_votos='$votos' WHERE res_id = '$resposta'");
$sql_ip = "INSERT INTO resposta_ip(enq_id,ip,data_voto) values($this->id,'".$this->getIp()."',".time().")";
$db->Execute($sql_ip) or die($sql_ip);
echo "";
//$this->verResultado();
}
}
else
{
echo "";
}
return;
}
//Abre um popUp para ver o resultado parcial
function verResultado()
{
global $obSistema;
$result_aux = $this->getResultado();// ereg_replace('%','_',$this->getResultado());
$tv="";
//die($result_aux);
// laço p/ mandar as variáveis p/ outra página em forma de vetor
foreach($result_aux as $result_leitura)
{
$tv .= "tv[]=".$result_leitura."&";
}
$PopPage = $obSistema->getUrl()."modulos/enquete/enquete.php?".$tv."&pergunta=".$this->titulo;
?>
}
// Verifica se este ip já votou na enquete
function verificaIp()
{
global $db;
$sql = "SELECT ip FROM resposta_ip
WHERE ip like '%".$this->getIp()."%'
and enq_id = $this->id";
$qr = $db->Execute($sql);
if($qr->RowCount())
return true;
else
return false;
}
}
?>