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