示例#1
0
 /**
  * Método que gera a galeria de imagens para os anexos
  */
 public function galeriaDosAnexos()
 {
     try {
         $sqlAnexo = new \Kernel\Sql\SqlAnexos();
         $imagensQt = 0;
         $anexo = $sqlAnexo->get($this->get("anexo"));
         if ($anexo->getTipo() != Anexos::TIPO_GALERIA) {
             throw new Exception("Esta página não suporta este tipo de anexo");
         }
         $imagens = "";
         $pasta = dirname(__FILE__) . "/../../../uploadArquivos/{$anexo->getNome()}/";
         if (!file_exists($pasta)) {
             throw new Exception("O anexo informado não possue imagens");
         }
         foreach (scandir($pasta) as $arquivo) {
             if ($arquivo != "." && $arquivo != ".." && !is_dir("{$pasta}{$arquivo}")) {
                 $imagensQt++;
                 $imagens .= $this->loadSnippet("galeriaMiniatura", array("urlImagem" => "/uploadArquivos/{$anexo->getNome()}/{$arquivo}"));
             }
         }
         if (!$imagensQt) {
             throw new Exception("Não forma encontradas imagens para a galeria informada");
         }
         //Carregando e passando os dados para o view
         $this->loadView();
         $this->setViewValue("imagensFaGaleria", $imagens)->setViewValue("descricao", $anexo->getDescricao())->setViewValue("urlSite", "/")->setViewValue("ano", Loader::data("config", "site", "ano_letivo"))->printView();
     } catch (Exception $exc) {
         echo Javascript::alert($exc->getMessage());
         echo Javascript::close();
         die(Javascript::history_back());
     }
 }
示例#2
0
 /**
  * Método que lista os anexos do tópico informado de acordo com o usuário logado
  * @param \Kernel\Modelo\Livro\Topico $topico O tópico alvo da consulta
  * @param \FiltrosSistema $filtros Filtros do sistema de filtros
  * @return \GGE\Lib\Sql\ResultSetHydrator Um objeto contendo os dados obtidos na consulta
  */
 public function listarPorTopico(\Kernel\Modelo\Livro\Topico $topico, $filtros = null)
 {
     $sqlAnexos = new \Kernel\Sql\SqlAnexos();
     switch ($this->usuarioLogado->getPerfil()->getId()) {
         case \Kernel\Modelo\Perfil::PROFESSOR:
             return $sqlAnexos->deTopicoProfessor($topico, $this->usuarioLogado);
         default:
             return $sqlAnexos->deTopico($topico);
     }
 }
示例#3
0
 /**
  * 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);
     }
 }
示例#4
0
 /**
  * Método que trata a requisição POST da página cadastrar_anexo_especifico
  */
 private function cadastrarAnexoEspecifico($pkLivro, $capitulo, $materia, $tipo, $finalidade, $conteudo)
 {
     $usrvalidar = new \Kernel\Auxiliar\Usuario();
     //
     $anexos = new Anexos();
     $sqlAnexos = new \Kernel\Sql\SqlAnexos();
     $arquivos = new Arquivos();
     $livro = new aula\models\dao\SqlLivroAnexo();
     //
     $sqlCapitulo = new \Kernel\Sql\SqlCapitulo();
     $sqlConteudo = new aula\models\dao\SqlConteudos();
     $sqlSerie = new aula\models\dao\SqlSerie();
     try {
         //Definindo os dados do objeto
         $idAnexo = (int) $this->input->post("anexo");
         if ($idAnexo) {
             //Caso esteja em modo de edição de anexos
             $anexos = $sqlAnexos->get($idAnexo);
         }
         $anexos->setTipo((int) $tipo);
         $anexos->setAnexoDesc($this->input->post("anexo_desc"));
         $anexos->setFinalidade((int) $finalidade);
         $anexos->setObjetivo((int) $this->input->post("objetivo"));
         $anexos->setAnoEnvio(date("Y"));
         $anexos->setObs(filter_input(INPUT_POST, "obs", FILTER_SANITIZE_MAGIC_QUOTES));
         $anexos->setFonte($this->input->post("fonte"));
         $anexos->setFonteUrl($this->input->post("fonte_url"));
         $anexos->setUsuarioInsert($usrvalidar->usuarioLogado());
         //Variável de configuração de acordo com o tipo de anexo informado
         $nomeTipos = $anexos->dadosAnexo();
         //Fazendo definições especificas por tipo de anexo
         if ($anexos->getTipo() == Anexos::TIPO_AUDIO) {
             $anexos->setSubtipo((int) $this->input->post("subtipo"));
             if ($anexos->getSubtipo() == Anexos::SUBTIPO_AUDIO_ARQUIVO) {
                 $arquivo = $_FILES["arquivo"];
                 $uploaddir = Anexos::DIR_UPLOAD . DIRECTORY_SEPARATOR . $nomeTipos["pasta"];
                 $anexos->setArquivoNome(Util::retira_caracteres_especiais($arquivo['name']));
                 $arquivos->upload($arquivo, $uploaddir, $nomeTipos["extencoes"], $anexos->getNome());
                 $anexos->setExtensao(substr($anexos->getNome(), strrpos($anexos->getNome(), ".") + 1));
             } else {
                 $anexos->setArquivoNome($this->input->post("url"));
             }
         } elseif ($anexos->getTipo() == Anexos::TIPO_VIDEO) {
             $anexos->setSubtipo(0);
             $anexos->setArquivoNome($this->input->post("url_video"));
         } elseif ($anexos->getTipo() == Anexos::TIPO_ANEXO) {
             $arquivo = $_FILES["arquivo"];
             $uploaddir = Anexos::DIR_UPLOAD . DIRECTORY_SEPARATOR . $nomeTipos["pasta"];
             $anexos->setArquivoNome(Util::retira_caracteres_especiais($arquivo['name']));
             $arquivos->upload($arquivo, $uploaddir, $nomeTipos["extencoes"], $anexos->getNome());
             $anexos->setExtensao(substr($anexos->getNome(), strrpos($anexos->getNome(), ".") + 1));
             $mimeType = $arquivo["type"];
             $anexos->setSubtipo(is_int(strpos($mimeType, "image")) ? Anexos::SUBTIPO_ANEXO_IMAGEM_ARQUIVO : Anexos::SUBTIPO_ANEXO_OUTROS);
         } elseif ($anexos->getTipo() == Anexos::TIPO_TESTE) {
             $anexos->setSubtipo(0);
             $anexos->setArquivoNome("Componente não definido ainda no HTML");
         } elseif ($anexos->getTipo() == Anexos::TIPO_RA) {
             $anexos->setSubtipo(0);
             $anexos->setArquivoNome($this->input->post("pagina"));
         } elseif ($anexos->getTipo() == Anexos::TIPO_GALERIA) {
             $anexos->setSubtipo(0);
             $anexos->setArquivoNome($_SESSION['pasta']);
         } elseif ($anexos->getTipo() == Anexos::TIPO_URL) {
             $anexos->setSubtipo(0);
             $anexos->setArquivoNome($this->input->post("url"));
         }
         //Definindo o tópico ou capítulo para associar
         if ((int) $conteudo) {
             $voidConteudo = $sqlConteudo->get((int) $conteudo);
             $serie = $sqlSerie->deTopico($voidConteudo);
         } else {
             $voidConteudo = $sqlCapitulo->get((int) $capitulo);
             $serie = $sqlSerie->deCapitulo($voidConteudo);
         }
         //Salvando o anexo no banco de dados
         if ($anexos->getId()) {
             $sqlAnexos->update($anexos);
             $this->session->set_flashdata('msg', '<p class="alert ok">Conteúdo Digital atualizado com sucesso.</p>');
         } else {
             $lastId = $sqlAnexos->insert($anexos);
             $anexos->setId($lastId);
             $sqlAnexos->insertVinculo($anexos, $serie, $voidConteudo);
             $this->session->set_flashdata('msg', '<div class="alert ok">Link cadastrado com sucesso.</div>');
         }
         //Defirecionando para a página de exibição
         $shadowbox = $this->input->post('shadowbox') == 1 ? '?shadowbox=1' : '';
         redirect(base_url("aula/conteudos/cadastrar_anexo/{$pkLivro}/{$capitulo}/{$materia}/" . ((int) $conteudo ?: 0) . "/{$shadowbox}"));
         return "";
     } catch (Exception $e) {
         ini_set('default_charset', 'utf-8');
         echo Javascript::alert($e->getMessage());
         die(Javascript::history_back());
     }
 }