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