예제 #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 avalia um determinado anexo
  * @param int $anexoId
  */
 private function avaliar($anexoId)
 {
     $sqlAnexo = new Kernel\Sql\SqlAnexos();
     $sqlAvaliacao = new SqlAnexosAvaliacoes();
     $avaliacao = new AnexosAvaliacao();
     try {
         $aluno = $this->getUsuario(FALSE, new Aluno());
         $anexo = $sqlAnexo->get((int) $anexoId);
         //Definindo os dados da avaliação
         $avaliacao->setAnexo($anexo);
         $avaliacao->setUsuario($aluno);
         //Definindo a nota
         if (filter_input(INPUT_POST, "avaliacao", FILTER_VALIDATE_BOOLEAN) === true) {
             $avaliacao->setNota(AnexosAvaliacao::NOTA_MAX);
         } else {
             $avaliacao->setNota(AnexosAvaliacao::NOTA_MIN);
         }
         $sqlAvaliacao->avaliar($avaliacao);
         die(json_encode(array("status" => true, "mensagem" => "Avaliação feita com sucesso")));
     } catch (SqlException $sql) {
         $this->reportarException($sql);
         die(json_encode(array("status" => false, "mensagem" => "Ocorreu um erro interno do sistema. Entre em contato com o administrador")));
     } catch (\GGE\Lib\Base\Exception $exc) {
         die(json_encode(array("status" => false, "mensagem" => $exc->getMessage())));
     }
 }
예제 #3
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());
     }
 }