コード例 #1
0
 /**
  * Metodo que retorna um teste relacionado ao aluno e ao capítulo ou 
  * tópico informado. O capítulo é obtido por meio do tópico informado.
  *
  * @param Aluno $aluno O aluno alvo da busca
  * @param Model $model O capítulo relacionado a questão
  *
  * @return TesteCapitulo|bool Um objeto contendo os dados do teste 
  *                            ou FALSE caso não seja encontrado
  *
  * @throws TesteException
  */
 protected function deAlunoTopCap(Aluno $aluno, ConteudoInterno $model)
 {
     if (!$aluno->getId() || !$model->getId()) {
         throw new TesteException('O aluno ou capítulo informado é inválido');
     }
     if ($model instanceof Capitulo) {
         $fk = "pk_capitulo";
     } else {
         $fk = "pk_conteudo";
     }
     $resultset = $this->tg->selectObj($this->select()->distinct("pk_{$this->tabela}")->where(array("{$this->tabela}_pk_usuario" => $aluno->getId(), "{$this->tabela}_{$fk}" => $model->getId(), "{$this->tabela}_ano" => $this->anoLetivo)));
     if (!$resultset->rowCount()) {
         $return = false;
     } else {
         $teste = $resultset->fetch();
         $sqlQuestao = new SqlQuestao();
         $teste->setQuestoes($sqlQuestao->deTeste($teste)->fetchAll());
         $return = $teste;
     }
     return $return;
 }
コード例 #2
0
 /**
  * Método que faz o tratamento da requisição POST feita a página de edição de questões
  * @param Questao $questao A questão a ser editada
  * @return string Retorna a resposta da tentativa de edição da questão
  */
 private function editarPost(Questao $questao)
 {
     //Inicializando o objeto responsável pela interação com o banco
     $sqlQuestao = new SqlQuestao();
     //Inicializando as variáveis de apoio
     $mq = FILTER_SANITIZE_MAGIC_QUOTES;
     $vi = FILTER_VALIDATE_INT;
     try {
         //Recebendo os novos dados
         $topicos = isset($_POST["topicos"]) ? $_POST["topicos"] : array();
         $inclusaoArray = isset($_POST["inclusao"]) ? $_POST["inclusao"] : array();
         $inclusao = isset($inclusaoArray[0]) ? $inclusaoArray[0] : 0;
         $questao->setTipoInsert($inclusao);
         if ($questao->getTipoInsert() == Questao::SALVA_ARQUIVO) {
             //Só edita o arquivo em caso de novo inserido
             if ($_FILES["arquivo_questao"]["size"]) {
                 $questao->setQuestao($_FILES["arquivo_questao"]);
             }
         } else {
             $questao->setQuestao(filter_input(INPUT_POST, "texto_questao", $mq));
         }
         $qtAlternativas = "qt_alternativas_{$questao->getTipo()}";
         $gabarito = "gabarito_{$questao->getTipo()}";
         $questao->setNumALternativas(filter_input(INPUT_POST, $qtAlternativas, $vi));
         $questao->setGabarito(filter_input(INPUT_POST, $gabarito, $mq));
         $questao->setDica(filter_input(INPUT_POST, "dica", $mq));
         $questao->setExplicacao(filter_input(INPUT_POST, "explicacao", $mq));
         $sqlQuestao->update($questao, $topicos);
         $this->session->set_flashdata('msg', "<div class=\"alert informacao\">" . "Questão editada com sucesso com sucesso" . "</div>");
         redirect(base_url("banco_de_questoes"));
     } catch (SqlException $exc) {
         return "<div class=\"alert erro\">Ocorreu um erro interno. " . "Tente novamente mais tarde</div>";
     } catch (Exception $exc) {
         return "<div class=\"alert erro\">{$exc->getMessage()}</div>";
     }
 }