/**
  * 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);
 }
Beispiel #2
0
 /**
  * Método que retorna o tópico pedido
  * @param int $topico O código do tópico buscado
  * @return Topico Um objeto contendo os dados do tópico
  * @param boolea $apenasMinistrados Define se deve exibir qualquer tópico ou apenas os já ministrados em aula
  * @throws LivroException
  */
 public function getTopico($topico, $apenasMinistrados = TRUE)
 {
     if (!is_int($topico)) {
         throw new LivroException("O tópico informado não é válido");
     }
     $select = new Select();
     $tableGatway = new TableGatway(new Topico(), "apostilas.conteudo");
     $tableGatway->defineColuna("pk_conteudo", new ResultSetMap(Column::INTEGER));
     $select->columns("*, " . "apostilas.acompanhamento.data_aula as topico_data_aula," . "apostilas.acompanhamento.status as topico_status")->join("apostilas.capitulo", array("pk_capitulo" => "fk_capitulo"))->join("public.materia_vin", array("pk_materia_vin" => "fk_materia_vin"))->join("public.materia", array("pk_materia" => "fk_materia"))->join("public.materia_mae", array("pk_materia_mae" => "fk_materia_mae"))->join("public.area", array("pk_area" => "fk_area"))->join("apostilas.livro", array("pk_livro" => "fk_livro"))->join("apostilas.livro_cat", array("pk_livro_cat" => "fk_livro_cat"));
     if ((bool) $apenasMinistrados) {
         $select->join("apostilas.acompanhamento", array("pk_conteudo" => "fk_conteudo"));
     } else {
         $select->join("apostilas.acompanhamento", array("pk_conteudo" => "fk_conteudo"), Join::LEFT_JOIN);
     }
     $select->where(array("pk_conteudo" => $topico));
     $resultSet = $tableGatway->selectObj($select);
     if (!$resultSet->rowCount()) {
         throw new LivroException("O tópico informado não foi encontrado ou ainda não foi dado em aula");
     }
     return $resultSet->fetch();
 }
 /**
  * Método que lista todos os vídeos cadastrados como anexos dos conteúdos
  * para o aluno informado
  * @param Aluno $aluno O aluno relacionado ao matérial
  * @param int $limit Define o máximo de vídeos a serem retornados
  * @return ResultSetHydrator Um objeto contendo os anexos busacdos
  */
 public function videosAcompanahemto(Aluno $aluno, $limit = 3)
 {
     $tableGatway = new TableGatway(new Anexos(), "apostilas.anexos");
     $sqlAnexos = new SqlAnexos();
     return $tableGatway->selectObj($sqlAnexos->select()->join("apostilas.anexos_vin", array("fk_anexo" => "pk_anexo"))->join("apostilas.acompanhamento", array("fk_conteudo" => "apostilas.anexos_vin.fk_conteudo"))->join("public.usuario_aluno", array("fk_turma" => "apostilas.acompanhamento.fk_turma"))->where("pk_usuario_aluno={$aluno->getIdEspecifico()} " . "and extract(year from data_aula)=" . Loader::data("config", "site", "ano_letivo") . " " . "and apostilas.anexos.tipo=" . Anexos::TIPO_VIDEO)->order("data_aula", Order::DSC)->limit($limit));
 }