/**
  * 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)
 {
     $sqlTurma = new SqlTurma();
     $sqlLivro = new SqlLivro();
     $sqlAnexo = new Kernel\Sql\SqlAnexos();
     try {
         $aluno = $this->getUsuario(FALSE, new Aluno());
         $turma = $sqlTurma->deALuno($aluno);
         $topico = $sqlLivro->getTopico((int) $topicoId);
         $anexos = $sqlAnexo->deTopico($topico);
         //Passando os dados para o view
         $this->loadPlugin("shadowbox")->loadPlugin("turn.js")->setData("aluno", $aluno)->setData("turma", $turma)->setData("topico", $topico)->setData("anexos", $anexos)->setData("teste", new stdClass())->printView();
     } catch (SqlException $sql) {
         echo Javascript::alert("Ocorreu um erro interno. Tente novamente mais tarde.");
         $this->close(true);
     } catch (\GGE\Lib\Base\Exception $exc) {
         echo $exc->getMessage();
         $this->close(true);
     }
 }
Example #2
0
 /**
  * Método que converte a página em PDF do tópico em arquivo jpg
  * @param int $topicoId O código do tópico
  * @param int $pagina O número da página
  */
 public function getPage()
 {
     $topicoId = $this->get("topico");
     $pagina = $this->get("pagina");
     $sqlLivro = new SqlLivro();
     $sqlUsuario = new SqlUsuario();
     try {
         //Validando o usuário
         if (!isset($_SESSION['usuario'])) {
             throw new Exception("Você precisa estar logado para ter acesso a este recurso");
         }
         $usuario = unserialize($_SESSION['usuario']);
         if (!$usuario instanceof Usuario2) {
             throw new Exception("Você precisa estar logado para ter acesso a este recurso");
         }
         $tipoUsuario = $usuario->get_tipoUsuario();
         $sqlUsuario->get($usuario->get_idUsuario(), new Usuario(new Perfil($tipoUsuario[0]->get_idTipoUsuario())));
         //
         $topico = $sqlLivro->getTopico((int) $topicoId);
         if (!(int) $pagina) {
             throw new Exception("A página informada é inválida");
         }
         if (!$topico->getConteudoDigital()) {
             throw new Exception("Não há conteúdo digitalizado para a página e tópico informados");
         }
         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 = "";
         } else {
             $pagina = (int) ($pagina - $topico->getPaginaInicial());
         }
         $pathPDF = $topico->getPdfTopico();
         $path = substr($pathPDF, 0, strrpos($pathPDF, "."));
         $pathPNG = "{$path}{$pagina}.png";
         if (!file_exists($pathPNG)) {
             //Convertendo o pdf para png
             throw new \GGE\Lib\Base\Exception("A página não foi encontrada");
         }
         $imagem = new Image($pathPNG);
         $imagem->setNewWidth($this->get("width"));
         $imagem->setNewHeight($this->get("height"));
         $imagem->setQuality(75);
         $imagem->setAntiAlias(TRUE);
         $imagem->setType("");
         $getImage = new GetImage($imagem);
         $getImage->__toString();
         die;
     } catch (SqlException $sql) {
         echo "Ocorreu um erro interno. Tente novamente mais tarde";
     } catch (Exception $exc) {
         echo $exc->getMessage() . "<br>";
     }
 }