/** * 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()); }
/** * Método que retorna um select base para a maioria das consultas da classe * @return Select Um objeto contendo o molde para a consulta básica */ public function select() { $select = new Select($this->tg->getTabela()); $sqlLivro = new SqlLivro(); $sqlDisciplina = new SqlDisciplina(); return $select->columns(array("pk_capitulo", "capitulo_sequencial", "capitulo_nome"))->join("apostilas.livro", array("pk_livro" => "fk_livro"))->import($sqlLivro->select())->join("public.materia_vin", array("pk_materia_vin" => "fk_materia_vin"))->join("public.materia", array("pk_materia" => "public.materia_vin.fk_materia"))->import($sqlDisciplina->select()); }
/** * Método contendo o modelo básico de consultas para uso da classe. * * @return Select */ public function select() { $select = new Select(); $sqlDisciplina = new SqlMateria(); $sqlSerie = new SqlSerie(); return $select->columns(array('pk_materia_vin', 'materia_vin_video_apresentacao'))->join('public.serie', array('pk_serie' => "{$this->tg->getTabela()}.fk_serie"))->import($sqlSerie->select())->join('public.materia', array('pk_materia' => "{$this->tg->getTabela()}.fk_materia"))->import($sqlDisciplina->select()); }
/** * Método que gera a página de apresentação da disciplina. * * @param int $id O código da disciplina * @param int $serieId A série associada a disciplinna e ao vídeo */ public function apresentacaoDisciplina($id, $serieId) { $this->debug(); try { $sqlDisciplina = new SqlDisciplina(); $selSerie = new SqlSerie(); $serie = $selSerie->get((int) $serieId); $disciplina = $sqlDisciplina->getComSerie((int) $id, $serie); //Verificando se existe vídeo associado a disciplina if (!strlen($disciplina->getVideoApresentacao())) { throw new Exception('Esta disciplina não possue apresentação'); } $this->bowerLoad('jquery.proporcao'); $this->setData('disciplina', $disciplina); $this->setData('serie', $serie); $this->printView(); } catch (Exception $exc) { $this->close($exc); } }
$path = $parseUrl["path"] ?: false; $query = $parseUrl["query"] ?: false; if (is_string($host) && is_string($path) && is_string($query)) { $querys = explode("&", $query); $isSGDE = $host == "sistemaggedeensino.com.br" && $path == "/se/aula/livro/conteudos_digitais/" && in_array("pk_livro={$livroId}", $querys) && in_array("pk_materia={$disciplinaId}", $querys); } } if (!$isSGDE) { //carregando o usuário logado $usrValidar = new Usuarios(); $usuario = $usrValidar->usuarioLogado(); if (!$usuario instanceof Professor && !$usuario instanceof Aluno && $usuario->getPerfil()->getId() != Perfil::ADMIN && $usuario->getPerfil()->getId() != Perfil::COORDENADOR && $usuario->getPerfil()->getId() != Perfil::GESTOR) { throw new Exception("Desculpe, este conteúdo é apenas destinado " . "a professores e alunos"); } //Carregando a disciplina de acordo com o perfil do usuário logado $sqlDisciplina = new SqlDisciplina(); if ($usuario->getPerfil()->getId() == Perfil::ADMIN || $usuario->getPerfil()->getId() != Perfil::COORDENADOR || $usuario->getPerfil()->getId() != Perfil::GESTOR) { $disciplina = $sqlDisciplina->get($disciplinaId); } elseif ($usuario->getPerfil()->getId() == Perfil::ALUNO) { $disciplinas = $sqlDisciplina->deAluno($usuario, $filtros); 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;
/** * 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); } }