Example #1
0
 function exibir($params = array())
 {
     $enquete_id = $params['enquete_id'];
     $dados = array();
     $dados['enquete'] = $this->Enquetes_model->obter($enquete_id);
     $dados['opcoes'] = $this->Enquetes_model->obter_opcoes($enquete_id);
     $dados['resultados'] = $this->Enquetes_model->obter_resultados($enquete_id);
     $this->form_validation->set_rules('resposta', 'Resposta', 'trim|required');
     $this->form_validation->set_message('required', 'É necessário escolher ao menos uma opção.');
     $dados['enquete']['pag_resultados'] = strlen($params['pag_resultados']) > 0 ? $params['pag_resultados'] : 'enquete/resultados';
     // Agora:
     $agora = date('Y-m-d H:i:00');
     // Se está inativa
     if ($dados['enquete']['ativo'] != 't') {
         $dados['erro'][] = 'Desculpe, mas esta enquete não está mais ativa.';
         $dados['disabled'] = true;
     } elseif ($agora < $dados['enquete']['dt_inicio']) {
         $dados['erro'][] = 'Desculpe, mas esta enquete ainda não iniciou. Aguarde até: ' . MY_Utils::formata_data_hora($dados['enquete']['dt_inicio']);
         $dados['disabled'] = true;
     } elseif (strlen($dados['enquete']['dt_fim']) > 0 && $agora > $dados['enquete']['dt_fim']) {
         $dados['erro'][] = 'Desculpe, mas esta enquete encerrou em: ' . MY_Utils::formata_data_hora($dados['enquete']['dt_fim']);
         $dados['disabled'] = true;
     } elseif ($this->input->post('votar')) {
         // Obtém a(s) resposta(s) do POST
         $resposta = $this->input->post('resposta');
         if ($this->form_validation->run()) {
             if ($this->pode_votar($enquete_id)) {
                 $cod_aluno = $this->obter_codigo_aluno();
                 $ok = $this->Enquetes_model->gravar_voto($enquete_id, $resposta, $cod_aluno);
                 if ($ok) {
                     $dados['info'][] = 'Voto computado com sucesso!';
                 } else {
                     $dados['erro'][] = 'Desculpe, mas não foi possível computar seu voto. Tente novamente mais tarde.';
                 }
             } else {
                 $dados['erro'][] = 'Você já votou nesta enquete.';
             }
         } else {
             $dados['erro'][] = '<b>Não foi possível computar seu voto.</b>';
             $dados['erro'][] = validation_errors();
         }
     }
     $this->load->view('enquete', $dados);
 }