Пример #1
0
 /**
  * Método que retorna a avaliação do anexo informado
  * @param Anexos $anexo O anexo alvo da consulta
  * @param Usuario $aluno O aluno que fez a avaliação
  * @return AnexosAvaliacao Retorna a avaliação do anexo
  */
 public function get(Anexos $anexo, Usuario $aluno)
 {
     $ava = $this->tableGatway->select(array("anexos_ava_fk_anexo" => $anexo->getId(), "anexos_ava_fk_usuario" => $aluno->getId()));
     if ($ava->rowCount()) {
         return $ava->fetch();
     } else {
         return new AnexosAvaliacao();
     }
 }
 /**
  * Método que lista todos os comentários feitos para o anexo informado
  * @param Anexos $anexo
  * @return ResultSetHydrator Um objeto contendo conversões de modelos com os dados da consulta
  * @throws Exception
  */
 public function comentariosDeAnexo(Anexos $anexo)
 {
     if (!is_int($anexo->getId())) {
         throw new Exception("O anexo informado não é válido", 11);
     }
     $select = new Select();
     $select->where(array("comentario_fk_anexo" => $anexo->getId()))->join("public.usuario", array("comentario_fk_usuario" => "pk_usuario"))->join("apostilas.anexos", array("pk_anexo" => "comentario_fk_anexo"));
     return $this->tableGatway->selectObj($select);
 }
 /**
  * Método que lista todos os comentários feitos para o anexo informado.
  *
  * @param Anexos $anexo
  *
  * @return ResultSetHydrator Um objeto contendo conversões de modelos com os dados da consulta
  *
  * @throws Exception
  */
 public function comentariosDeAnexo(Anexos $anexo)
 {
     if (!is_int($anexo->getId())) {
         throw new Exception('O anexo informado não é válido', 11);
     }
     $select = new Select();
     $select->where(array('comentario_fk_anexo' => $anexo->getId()))->join('public.usuario', array('comentario_fk_usuario' => 'pk_usuario'))->join('apostilas.anexos', array('pk_anexo' => 'comentario_fk_anexo'));
     return $this->tg->selectObj($select);
 }
Пример #4
0
 /**
  * Método que retorna a disciplina de acordo com o anexo informado
  * @param \Kernel\Modelo\Livro\Anexos $anexo O anexo usado como filtro
  * @return \Kernel\Modelo\Disciplina\Disciplina A disciplina associada ao anexo informado
  * @throws \Kernel\Exception\DisciplinaException
  * @throws \Kernel\Exception\LivroException
  */
 public function deAnexo(\Kernel\Modelo\Livro\Anexos $anexo)
 {
     if (!$anexo->getId()) {
         throw new \Kernel\Exception\LivroException("O anexo informado é inválido");
     }
     $query = "select * from public.materia " . "inner join public.materia_vin on pk_materia=fk_materia " . "inner join apostilas.capitulo on pk_materia_vin=fk_materia_vin " . "inner join apostilas.conteudo on pk_capitulo=fk_capitulo " . "inner join apostilas.anexos_vin on apostilas.anexos_vin.fk_conteudo=pk_conteudo " . "or apostilas.anexos_vin.fk_capitulo=pk_capitulo " . "WHERE fk_anexo={$anexo->getId()} limit 1";
     $resultset = $this->tableGatway->querySelect($query);
     if (!$resultset->rowCount()) {
         throw new \Kernel\Exception\DisciplinaException("A disciplina informada não foi encontrada");
     }
     return $resultset->fetch();
 }
Пример #5
0
 /**
  * Método responsável pela tradução da resposta da conulta para o modelo
  * @param array $dados
  */
 public function exchangeArray(array $dados)
 {
     parent::exchangeArray($dados);
     $this->disciplina->exchangeArray($dados);
 }
Пример #6
0
 /**
  * Método responsável por atualizar o anexo informado
  * @param Anexos $anexo O anexo contendo os novos dados a serem atualizados no banco
  * @return boolean Retorna TRUE em caso de sucesso ou FALSE em caso de erro
  * @throws LivroException
  */
 public function update(Anexos $anexo)
 {
     if (!is_int($anexo->getId())) {
         throw new Exception("O anexo informado não pode ser atualizado");
     }
     return $this->tablegateway->update(array("pk_anexo" => $anexo->getId()), array("anexo_desc" => $anexo->getDescricao(), "arquivo_nome" => $anexo->getNome(), "extensao" => $anexo->getExtensao(), "subtipo" => $anexo->getSubtipo(), "objetivo" => $anexo->getObjetivo(), "obs" => $anexo->getObs(), "fonte" => $anexo->getFonte(), "fonte_url" => $anexo->getFonteUrl()));
 }
Пример #7
0
 /**
  * Método que cadastra anexo para conteúdo pre e pós aula
  * @param int $pkLivro O código do livro
  * @param int $pkCapitulo O código do capítulo
  */
 public function cadastrar_anexo($pkLivro = 0, $pkCapitulo = 0, $pkMateria = 0, $pkConteudo = 0)
 {
     //Trecho especial, para a alteração do status da permissão de exclusão
     if (filter_input(INPUT_GET, "acao") == "st_ex") {
         $this->statusExclusaoAnexo();
     }
     //Carregando os dados básicos
     $data = $this->getParametroVisao();
     //Inicializando os objetos básicos
     $sqlCapitulo = new \Kernel\Sql\Livro\SQlCapitulo();
     $sqlConteudo = new aula\models\dao\SqlTopicoAula();
     $sqlSerie = new aula\models\dao\SqlSerieAula();
     $sqlAnexo = new aula\models\dao\SqlAnexosAula();
     try {
         $anexo = new Anexos();
         //Validando livro e buscando os anexos relacionados
         if ((int) $pkConteudo) {
             //Buscando pelo tópico
             $topico = $sqlConteudo->get((int) $pkConteudo);
             $anexos = $sqlAnexo->deTopico($topico)->fetchAll();
             $data["topico"] = $topico;
             $data["capitulo"] = $topico->getCapitulo();
             $data["serie"] = $sqlSerie->deTopico($topico);
         } else {
             //Buscando pelo capítulo
             $capitulo = $sqlCapitulo->get((int) $pkCapitulo);
             $anexos = $sqlAnexo->deCapitulo($capitulo)->fetchAll();
             $data["capitulo"] = $capitulo;
             $data["serie"] = $sqlSerie->deCapitulo($capitulo);
         }
         //Passando os dados para o view
         //Definindo as permissões de edição
         //Obs: este trecho corresponde a usar a sintaxe 'if($permissao["editar"])' no view
         $data["permissaoAcao"] = \Kernel\Sistema\Usuarios\Permissoes::checar(array(\Kernel\Sistema\Usuarios\Permissoes::EDITAR, \Kernel\Sistema\Usuarios\Permissoes::EXCLUIR), FALSE) || $data["permissao_links"] == 1;
         $data['abaAtiva'] = 7;
         $data['abaPage'] = $data['alias'] = $data['page'] = __FUNCTION__;
         $data['page'] = 'home';
         $data['msg'] = $this->getMsg();
         $data['box'] = $data["shadowbox"] ? '?shadowbox=1' : '';
         $data["conteudo"] = (int) $pkConteudo;
         $data["anexo"] = $anexo;
         $data["finalidades"] = $anexo->getFinalidades();
         $data["colspan"] = !isset($_SESSION['redirect_conteudos_digitais']) ? 6 : 4;
         $data["anexos"] = $anexos;
         $this->load->view($this->load->getUrlTema(), $data);
     } catch (Exception $exc) {
         echo Javascript::alert($exc->getMessage());
         echo Javascript::shadowboxClose();
         die(Javascript::history_back());
     }
 }
Пример #8
0
 /**
  * Metodo que associa o código do anexo ao código da série, conteúdo e/ou capítulo.
  *
  * @param int O código do anexo a ser vinculado
  * @param Anexos          $anexo        O anexo a ser viinculado
  * @param Serie           $serie        A série referente ao anexo
  * @param Topico|Capitulo $voidConteudo O tópico ou capítulo referente ao anexo
  *
  * @return bool Retorna TRUE em caso de sucesso ou FALSE em caso de falha
  *
  * @throws PDOException
  */
 public function insertVinculo(Anexos $anexo, Serie $serie, $voidConteudo)
 {
     if (!$anexo->getId()) {
         throw new LivroException('Nãp foi possível associar o anexo informado ao livro');
     }
     if ($voidConteudo instanceof Topico) {
         $query = 'INSERT INTO apostilas.anexos_vin (fk_anexo, fk_conteudo, fk_serie)
             values (:fk_anexo, :fk_conteudo, :fk_serie)';
         $prepare = $this->tg->getPDO()->prepare($query);
         $prepare->bindParam(':fk_conteudo', $voidConteudo->getId(), PDO::PARAM_INT);
     } elseif ($voidConteudo instanceof Capitulo) {
         $query = 'INSERT INTO apostilas.anexos_vin (fk_anexo, fk_serie, fk_capitulo)
             values (:fk_anexo, :fk_serie, :fk_capitulo)';
         $prepare = $this->tg->getPDO()->prepare($query);
         $prepare->bindParam(':fk_capitulo', $voidConteudo->getId(), PDO::PARAM_INT);
     } else {
         $this->tg->getPDO()->rollBack();
         throw new LivroException('Erro ao associar o anexo ao conteúdo');
     }
     $prepare->bindParam(':fk_anexo', $anexo->getId(), PDO::PARAM_INT);
     $prepare->bindParam(':fk_serie', $serie->getId(), PDO::PARAM_INT);
     return $prepare->execute();
 }
Пример #9
0
 /**
  * Método que cadastra anexo para conteúdo pre e pós aula
  * @param int $pkLivro O código do livro
  * @param int $pkCapitulo O código do capítulo
  */
 public function cadastrar_anexo($pkLivro = 0, $pkCapitulo = 0, $pkMateria = 0, $pkConteudo = 0)
 {
     //Carregando os dados básicos
     $data = $this->getParametroVisao();
     //Inicializando os objetos básicos
     $sqlCapitulo = new \Kernel\Sql\SqlCapitulo();
     $sqlConteudo = new aula\models\dao\SqlConteudos();
     $sqlSerie = new aula\models\dao\SqlSerie();
     $anexosAux = new Kernel\Auxiliar\Livro\Anexos();
     try {
         $anexo = new Anexos();
         //Validando livro e buscando os anexos relacionados
         if ((int) $pkConteudo) {
             //Buscando pelo tópico
             $topico = $sqlConteudo->get((int) $pkConteudo);
             $anexos = $anexosAux->listarPorTopico($topico)->fetchAll();
             $data["topico"] = $topico;
             $data["capitulo"] = $topico->getCapitulo();
             $data["serie"] = $sqlSerie->deTopico($topico);
         } else {
             //Buscando pelo capítulo
             $capitulo = $sqlCapitulo->get((int) $pkCapitulo);
             $anexos = $anexosAux->listarPorCapitulo($capitulo)->fetchAll();
             $data["capitulo"] = $capitulo;
             $data["serie"] = $sqlSerie->deCapitulo($capitulo);
         }
         //Passando os dados para o view
         $data['abaAtiva'] = 7;
         $data['abaPage'] = $data['alias'] = $data['page'] = __FUNCTION__;
         $data['page'] = 'home';
         $data['msg'] = $this->getMsg();
         $data['box'] = $data["shadowbox"] ? '?shadowbox=1' : '';
         $data["conteudo"] = (int) $pkConteudo;
         $data["anexo"] = $anexo;
         $data["finalidades"] = $anexo->getFinalidades();
         $data["colspan"] = !isset($_SESSION['redirect_conteudos_digitais']) ? 6 : 4;
         $data["anexos"] = $anexos;
         $this->load->view($this->load->getUrlTema(), $data);
     } catch (Exception $exc) {
         echo Javascript::alert($exc->getMessage());
         echo Javascript::shadowboxClose();
         die(Javascript::history_back());
     }
 }
Пример #10
0
 /**
  * Método que faz o mapeamento do resultado da consulta para o objeto
  * @param array $dados
  */
 public function exchangeArray(array $dados)
 {
     parent::exchangeArray($dados);
     $this->materia->exchangeArray($dados);
 }