Exemplo n.º 1
0
 /**
  * Método que trata a requisição POST da página de cadastro
  * os tópicos são definidos separadamenta em outra tabela relacionada a questão
  */
 private function cadastrarPost()
 {
     $mq = FILTER_SANITIZE_MAGIC_QUOTES;
     $vi = FILTER_VALIDATE_INT;
     $questao = new Questao();
     $sqlQuestao = new SqlQuestao();
     try {
         $topicos = isset($_POST["topicos"]) ? $_POST["topicos"] : array();
         $inclusaoArray = isset($_POST["inclusao"]) ? $_POST["inclusao"] : array();
         $inclusao = isset($inclusaoArray[0]) ? $inclusaoArray[0] : 0;
         $questao->setTipo(filter_input(INPUT_POST, "tipo_questao", $vi));
         $questao->setTipoInsert($inclusao);
         if ($questao->getTipoInsert() == Questao::SALVA_ARQUIVO) {
             $questao->setQuestao($_FILES["arquivo_questao"]);
         } else {
             $questao->setQuestao(filter_input(INPUT_POST, "texto_questao", $mq));
         }
         $qtAlternativas = "qt_alternativas_{$questao->getTipo()}";
         $questao->setNumALternativas(filter_input(INPUT_POST, $qtAlternativas, $vi));
         $questao->setGabarito(filter_input(INPUT_POST, "gabarito_{$questao->getTipo()}", $mq));
         $questao->setDica(filter_input(INPUT_POST, "dica", $mq));
         $questao->setExplicacao(filter_input(INPUT_POST, "explicacao", $mq));
         $sqlQuestao->save($questao, $topicos);
         $this->session->set_flashdata('msg', "<div class=\"alert informacao\">" . "Questão cadastrada com sucesso" . "</div>");
         redirect(base_url("banco_de_questoes"));
     } catch (Exception $exc) {
         return "<div class=\"alert erro\">{$exc->getMessage()}</div>";
     }
 }