/** * 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); } }
/** * 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>"; } }