/**
  * Método que avalia um determinado anexo.
  *
  * @param int $anexoId
  */
 private function avaliar($anexoId)
 {
     $sqlAnexo = new SqlAnexosAula();
     $sqlAvaliacao = new SqlAnexosAvaliacoes();
     $avaliacao = new AnexosAvaliacao();
     try {
         $aluno = $this->getUsuario(false, new Aluno());
         $anexo = $sqlAnexo->get((int) $anexoId);
         //Definindo os dados da avaliação
         $avaliacao->setAnexo($anexo);
         $avaliacao->setUsuario($aluno);
         //Definindo a nota
         if (filter_input(INPUT_POST, 'avaliacao', FILTER_VALIDATE_BOOLEAN) === true) {
             $avaliacao->setNota(AnexosAvaliacao::NOTA_MAX);
         } else {
             $avaliacao->setNota(AnexosAvaliacao::NOTA_MIN);
         }
         $sqlAvaliacao->avaliar($avaliacao);
         die(json_encode(array('status' => true, 'mensagem' => 'Avaliação feita com sucesso')));
     } catch (SqlException $sql) {
         die(json_encode(array('status' => false, 'mensagem' => 'Ocorreu um erro interno do sistema. ' . 'Entre em contato com o administrador')));
     } catch (Exception $exc) {
         die(json_encode(array('status' => false, 'mensagem' => $exc->getMessage())));
     }
 }
 /**
  * Método que gera a página de exibição do tópico acessado na home do estudo online.
  * Só é exibido o tópico já dado em sala de aula.
  *
  * @param int $topicoId O código do tópico
  */
 public function estudoOnlineTopico($topicoId)
 {
     $this->load->helper('link');
     $usrAux = new Usuarios();
     $sqlTurma = new SqlTurma();
     $sqlTopico = new SqlTopicoAula();
     $sqlAnexo = new SqlAnexosAula();
     $sqlQuestao = new SqlQuestaoAula();
     $sqlAcomp = new SqlAcompanhamento();
     $sqlLivreto = new SqlLivretoAula();
     $teste = false;
     try {
         $aluno = $usrAux->getAluno(false);
         $turma = $sqlTurma->deALuno($aluno)->fetch();
         $topico = $sqlTopico->get((int) $topicoId);
         $anexos = $sqlAnexo->deTopicoECapitulo($topico);
         $acomp = $sqlAcomp->deTopico($topico);
         $livreto = $sqlLivreto->deTopico($topico);
         if ($acomp->getStatus() == Acompanhamento::STATUS_CONCLUIDO || $acomp->getStatus() == Acompanhamento::STATUS_REVISADO) {
             //Criando um teste para o tópico
             $sqlTeste = new SqlTesteTopico();
             $teste = $sqlTeste->porAlunoTopico($aluno, $topico);
             if (!$teste) {
                 //Verificando se existem questões cadastrdas para realizar o teste
                 if ($sqlQuestao->temParaTopico($topico)) {
                     //Tem
                     //Gera o teste
                     $teste = new TesteTopico();
                 }
             }
         }
         //Passando os dados para o view
         $this->loadPlugin('shadowbox');
         $this->setData('aluno', $aluno);
         $this->setData('turma', $turma);
         $this->setData('livro', $livreto);
         $this->setData('topico', $topico);
         $this->setData('anexos', $anexos);
         $this->setData('teste', $teste);
         $this->printView();
     } catch (SqlException $sql) {
         echo $sql->getMessage();
         echo Javascript::alert('Ocorreu um erro interno. ' . 'Tente novamente mais tarde.');
         //            $this->close(true);
     } catch (Exception $exc) {
         echo $exc->getMessage();
         //            $this->close(true);
     }
 }