Exemplo n.º 1
0
 /**
  * Método que gera a consulta básica para a classe.
  *
  * @return Select
  */
 public function select()
 {
     $select = new Select($this->tg->getTabela());
     $sqlLIvro = new SqlLivroAula();
     $sqlDisciplina = new SqlDisciplina();
     return $select->columns(array('pk_livro', 'livro_desc', 'livro_digital', 'livro_mat_desc_video'))->join('public.materia', array('pk_materia' => "{$this->tg->getTabela()}.fk_materia"))->import($sqlDisciplina->select())->join('apostilas.livro', array('pk_livro' => "{$this->tg->getTabela()}.fk_livro"))->import($sqlLIvro->select());
 }
Exemplo n.º 2
0
            while ($d = $disciplinas->fetch()) {
                if ($d->getId() == $disciplinaId) {
                    $disciplina = $d;
                    break;
                }
            }
        } else {
            $disciplinas = $sqlDisciplina->deProfessor($usuario, $filtros);
            while ($d = $disciplinas->fetch()) {
                if ($d->getId() == $disciplinaId) {
                    $disciplina = $d;
                    break;
                }
            }
        }
        if (!isset($disciplina)) {
            throw new Exception("A disciplina informada não esta associada ao usuário logado");
        }
        /* Verificando se o livro existe de acordo com a disciplina */
        $sqlLivro = new SqlLivroAula();
        $livro = $sqlLivro->getComDisciplina($livroId, $disciplina);
        if (!$livro->getLivroDigitalizado()) {
            throw new Exception("O livro não possue conteúdo digitalizado cadastrado");
        }
    }
} catch (Exception $exc) {
    $heading = "Ocorreu um erro";
    $message = $exc->getMessage();
    include BASE . '/application/errors/error_404.php';
    die;
}
 /**
  * Método que gera a página inicial do estudo online.
  */
 public function estudoOnlineHome()
 {
     $this->load->helper('link');
     $usrAux = new Usuarios();
     $sqlTurma = new SqlTurma();
     $sqlLivro = new SqlLivroAula();
     $sqlCapitulos = new SQlCapitulo();
     $sqlConteudos = new SqlTopicoAula();
     $sqlDisciplina = new SqlDisciplina();
     $sqlTestes = new SqlTesteCapitulo();
     $sqlTestesTop = new SqlTesteTopico();
     $sqlStatus = new SqlStatusAlunoTopico();
     $sqlQuestao = new SqlQuestaoAula();
     $sqlAcomp = new SqlAcompanhamento();
     try {
         $aluno = $usrAux->getAluno(false);
         $turma = $sqlTurma->deALuno($aluno);
         $this->filtro->setGet(array("turma" => $turma->getId()));
         $acompanhamento = $sqlAcomp->listarTodos($this->filtro);
         $testesCapitulosLista = $sqlTestes->deAluno($aluno);
         $testesTopicoLista = $sqlTestesTop->deAluno($aluno);
         $livrosDeTurma = $sqlLivro->deTurma($turma);
         $statusList = $sqlStatus->porAluno($aluno);
         $capitulosMax = array();
         $temQuestao = array();
         $livros = array();
         $colecao = null;
         //Escaneando os livros encontrados para a turma
         while ($livro = $livrosDeTurma->fetch()) {
             $colecao = $livro->getColecao();
             $id = $livro->getId();
             $livros[$id]['livro'] = $livro;
             //Salvando as disciplinas do livro
             $disciplinas = $sqlDisciplina->deLivro($livro);
             $this->filtro->setGet(array('livro' => $livro->getId()));
             while ($disciplina = $disciplinas->fetch()) {
                 $idD = $disciplina->getId();
                 $this->filtro->setGet(array('disciplina' => $idD));
                 $livros[$id]['disciplinas'][$idD]['obj'] = $disciplina;
                 //Filtrando os capítulos
                 $capitulos = $sqlCapitulos->listarTodos($this->filtro);
                 $livros[$id]['disciplinas'][$idD]['capitulos'] = array();
                 while ($capitulo = $capitulos->fetch()) {
                     //                        $idC = $capitulo->getId();
                     $idC = $capitulo->getSequencial();
                     $livros[$id]['disciplinas'][$idD]['capitulos'][$idC]['capitulo'] = $capitulo;
                     $temQuestao[$idC] = $sqlQuestao->temParaCapitulo($capitulo);
                     $this->filtro->setGet(array('capitulo' => $capitulo->getId()));
                     $topicos = $sqlConteudos->deCapituloTurma($capitulo, $turma)->fetchAll();
                     $livros[$id]['disciplinas'][$idD]['capitulos'][$idC]['topico'] = $topicos;
                     $secC = trim(str_replace("Capítulo", "", $capitulo->getSequencial()));
                     $secC = str_pad($secC, 3, 0, STR_PAD_LEFT);
                     if (isset($capitulosMax[$secC])) {
                         if ($capitulosMax[$secC] < count($topicos)) {
                             $capitulosMax[$secC] = count($topicos);
                         }
                     } else {
                         $capitulosMax[$secC] = count($topicos);
                     }
                 }
             }
         }
         $tmp = array();
         krsort($capitulosMax, SORT_NUMERIC);
         foreach ($capitulosMax as $chave => $valor) {
             $tmp["Capítulo " . (int) $chave] = $valor;
         }
         $capitulosMax = array_reverse($tmp);
         //Agrupando os testes por capítulos
         $testesCapitulos = array();
         while ($teste = $testesCapitulosLista->fetch()) {
             $testesCapitulos[$teste->getAlvo()->getId()] = $teste;
         }
         //Agrupando os testes por tópico
         $testesTopicos = array();
         while ($teste = $testesTopicoLista->fetch()) {
             $testesTopicos[$teste->getAlvo()->getId()] = $teste;
         }
         //Agrupando os status
         $statusArray = array();
         while ($status = $statusList->fetch()) {
             $statusArray[$status->getTopico()->getId()] = $status;
         }
         //Agrupando o acompanhamento
         $acompArray = array();
         while ($acomp = $acompanhamento->fetch()) {
             $acompArray[$acomp->getTopico()->getId()] = $acomp;
             $maxAcomp = $acomp;
         }
         //Passando os dados para o view
         $this->setData('testesCapitulos', $testesCapitulos);
         $this->setData('acompanhamento', $acompArray);
         $this->setData('testesTopicos', $testesTopicos);
         $this->setData('status', $statusArray);
         $this->setData('aluno', $aluno);
         $this->setData('turma', $turma);
         $this->setData('colecao', $colecao);
         $this->setData('temQuestao', $temQuestao);
         $this->setData('arrayLivros', $livros);
         $this->setData('capitulosMax', $capitulosMax);
         $this->setData('ultLivro', $maxAcomp->getTopico()->getCapitulo()->getLivro());
         $this->loadPlugin('shadowbox');
         $this->printView();
     } catch (SqlException $sql) {
         echo Javascript::alert('Ocorreu um erro interno. ' . 'Tente novamente mais tarde.');
         echo $sql->getMessage();
         $this->close(true);
     } catch (Exception $exc) {
         echo Javascript::alert($exc->getMessage());
         $this->close(true);
     }
 }