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