コード例 #1
0
ファイル: livro.php プロジェクト: andersongimino/area51
 /**
  * Método que retorna a imagem da página informada
  */
 public function verPagina()
 {
     $sqlTopico = new SqlTopico();
     try {
         //Inicializando so filtros usados na página
         $this->filtro->initGets(array("topico", "width", "height", "pagina"));
         $pagina = $this->filtro->get("pagina");
         if (is_null($pagina)) {
             throw new Exception("A página informad é inválida");
         }
         $topico = $sqlTopico->get($this->filtro->get("topico"));
         if ($pagina > $topico->getPaginaFinal() || $pagina < $topico->getPaginaInicial()) {
             throw new Exception("Este tópico não possue a página informada");
         }
         if ($topico->getPaginaFinal() - $topico->getPaginaInicial() == 1) {
             $pagina = "0";
         } else {
             $pagina = (int) ($pagina - $topico->getPaginaInicial());
         }
         $pathPDF = $topico->getPdfTopico();
         $path = substr($pathPDF, 0, strrpos($pathPDF, DIRECTORY_SEPARATOR));
         $img = "{$path}/{$pagina}.jpg";
         if (!file_exists($img)) {
             throw new Exception("A página não foi encontrada");
         }
         $imagem = new Image($img);
         //            $imagem->setNewDimesion($this->filtro->getInstance("dimension"));
         $imagem->setQuality(100);
         $imagem->setAntiAlias(TRUE);
         $imagem->setType("");
         $getImage = new GetImage($imagem);
         $getImage->__toString();
         die;
     } catch (SqlException $exc) {
         echo "Ocorreu um erro. Tente novamente mais tarde";
     } catch (Exception $exc) {
         echo $exc->getMessage();
     }
 }
コード例 #2
0
ファイル: testes.php プロジェクト: andersongimino/area51
 /**
  * Método que salva as respostas do aluno no testes do capítulo 
  * e retorna a sua nota.
  */
 private function set_respostas()
 {
     $usrAux = new Usuarios();
     $sqlTopico = new SqlTopico();
     $nota = 0;
     $respostasAluno = array();
     try {
         $this->filtro->initPost('topico');
         $tipo = filter_input(INPUT_POST, "testePara");
         $aluno = $usrAux->getAluno(false);
         $topico = $sqlTopico->get($this->filtro->post('topico'));
         if ($tipo == "capitulo") {
             $sqlTeste = new SqlTesteCapitulo();
         } elseif ($tipo == "topico") {
             $sqlTeste = new SqlTesteTopico();
         } else {
             throw new Exception("O alvo do teste não é permitido");
         }
         $teste = $sqlTeste->porAlunoTopico($aluno, $topico);
         if (!$teste) {
             throw new Exception("O teste não foi encontrado");
         }
         //Verificando se o aluno já realizou o teste e pode refaze-lo
         if (!$teste->podeRefazer()) {
             throw new Exception('Desculpe, mas sua nota não ' . 'permite que o teste seja refeito.');
         }
         //Lendo as respostas
         $resposta = filter_input(INPUT_POST, 'resspostas', FILTER_SANITIZE_MAGIC_QUOTES);
         $respostasStr = substr($resposta, 0, -1);
         $respostas = explode(',', $respostasStr);
         $questoes = $teste->getQuestoes();
         if (count($respostas) != count($questoes)) {
             throw new Exception('Ainda há questões sem resposta. ' . 'Volte e responda todas.');
         }
         foreach ($respostas as $resp) {
             $par = explode('=', $resp);
             $respostasAluno[trim($par[0])] = trim($par[1]);
             foreach ($questoes as $quest) {
                 if ($quest->getId() == $par[0]) {
                     if ($quest->getGabarito() == $par[1]) {
                         ++$nota;
                     }
                 }
             }
         }
         $teste->setNota((double) $nota);
         if (!$sqlTeste->salvaRespostas($teste, $respostasAluno)) {
             throw new Exception('Erro ao tentar salvar as suas respostas. ' . 'Tente novamente mais tarde.');
         }
         if (!$sqlTeste->salvarNota($teste)) {
             throw new Exception('Erro ao tentar salvar a sua nota. ' . 'Tente novamente mais tarde.');
         }
         //Gerando a resposta
         $tmp = new stdClass();
         $tmp->nota = $teste->getNota();
         $this->appendResposta($tmp);
         $this->statusTrue();
         $this->setMensagem('Nota salva com sucesso');
     } catch (SqlException $sql) {
         $this->setMensagem('Ocorreu um erro interno. ' . 'Tente novamente mais tarde.');
     } catch (Exception $exc) {
         $this->setMensagem($exc->getMessage());
     }
     $this->printResposta();
 }