/** * Método que retorna os dados do perfil logado */ protected function perfil() { $usr = new UsuariosAux(); // $logado = $usr->usuarioLogado(); $tmp = $this->modelo($logado); $this->appendResposta($tmp); }
/** * Método que gera a página de visulaização dos anexos. * * @param int $anexoId O código do anexo a ser exibido */ public function anexos($anexoId) { $this->debug(); //Tratamento especial para requisições do tipo POST if ($this->getRequest()->isPost()) { header('Content-Type: application/json; charset=UTF-8'); //Redireciona para os métodos de inseção switch ($this->input->post('acao')) { case 'avaliar': $this->avaliar($anexoId); break; default: $this->comentar($anexoId); break; } } //Definindo a página try { $usrValidar = new Usuarios(); $sqlAnexo = new SqlAnexosAula(); $sqlComentarios = new SqlAnexosComentarios(); $sqlAvaliação = new SqlAnexosAvaliacoes(); $sqlDisciplina = new SqlDisciplina(); if (isset($_SERVER[MY_Controller::SESSION_USUARIO_ID])) { //Verificando se existe usuário logado $aluno = $usrValidar->getAluno(false); } $anexo = $sqlAnexo->get((int) $anexoId); $dsiciplina = $sqlDisciplina->deAnexo($anexo); // $outrosAnexos = array(); //Carregando plugins especificos para tipos e subtipos e definindo os dados especificos if ($anexo->getTipo() == Anexos::TIPO_GALERIA) { $arquivo = new Arquivos(); $this->loadPlugin('bootstrap-image-gallery'); $this->bowerLoad('blueimp-bootstrap-image-gallery'); // $this->setData("imagens", $arquivo->arquivosDePasta($anexo->getNome(), false)); $this->setData('arquivos', $arquivo); $this->setData('imagens', $arquivo->arquivosDePastaFtp($anexo->getNome())); } //Carregando os plugins básicos $this->bowerLoad('autosize'); //Passando os dados para o view $this->setData('anexo', $anexo); $this->setData('disciplina', $dsiciplina); $this->setData('dadosAnexo', $anexo->dadosAnexo()); $this->setData('outrosAnexos', $outrosAnexos); if (isset($_SERVER[MY_Controller::SESSION_USUARIO_ID])) { //Verificando se existe usuário logado $this->setData('comentarios', $sqlComentarios->comentariosDeAnexo($anexo)); $this->setData('avaliacao', $sqlAvaliação->deAluno($anexo, $aluno)); } $this->printView(); } catch (Exception $exp) { $this->close($exp); } }
/** * Método que gera uma página genérica de distribuição de anotações * @param int $pkProfessor * @param int $tipo * @param int $subTipo */ private function distribuicaoGeral($pkProfessor, $tipo = FALSE, $subTipo = FALSE) { try { $this->initGets(array("de", "ate", "professor", "unidade", "ensino", "serie", "turma")); $validarUsr = new Usuarios(); $sqlTipo = new SqlTipo(); $sqlSubtipo = new SqlSubTipo(); $sqlAfa = new SqlAfaProfessores(); //Aplicando os filtros if (is_int($tipo)) { $this->filtro->setGet(array("tipo_afa" => $tipo)); } if (is_int($subTipo)) { $this->filtro->setGet(array("subtipo_afa" => $subTipo)); } if ($this->filtro->issetGet("professor")) { $professor = $validarUsr->getProgfessor($this->filtro->get("professor")); } else { $professor = $validarUsr->getProgfessor((int) $pkProfessor); } $tipos = $sqlTipo->listarTodos($this->filtro); $subTipos = $sqlSubtipo->listarTodos($this->filtro); $anotacoes = $sqlAfa->deProfessor($professor, $this->filtro); //Passando os dados para o view $this->loadPlugin("filtros_de_tela")->setUserFiltros($professor)->setData("professor", $professor)->setData("tipos", $tipos)->setData("subTipos", $subTipos->fetchAll())->setData("anotacoes", array_reverse($anotacoes->fetchAll()))->printView(); } catch (Exception $exc) { die($exc->getMessage()); } }
/** * Método que retorna as ultimas mensagens destinadas ao usuário logado */ protected function todas() { $this->filtro->initGets(array("de", "ate")); $usr = new Usuarios(); $lodado = $usr->usuarioLogado(); $sqlMensagem = new SqlMensagemService(); switch ($this->tipoLogado) { case Kernel\Modelo\Perfil::ALUNO: $mensgens = $sqlMensagem->deAluno($lodado, $this->filtro); break; default: $mensgens = false; break; } if ($mensgens) { while ($mensagem = $mensgens->fetch()) { $tmp = $this->modelo($mensagem); if ($tmp) { $this->appendResposta($tmp); } } } }
/** * Método que gera uma página padrão de distribuição de registros * @param int $pkAluno O código do aluno na tabela de usuários * @param int|boolean $tipo O tipo do registro no afa * @param int|boolean $subTipo O subtipo do registro no afa */ private function distribuicaoGeral($pkAluno, $tipo = FALSE, $subTipo = FALSE) { try { //Inicializando os filtros usados $this->initGets(array("de", "ate", "unidade", "ensino", "serie", "turma")); //Definindo os filtros internamente if (is_int($tipo)) { $this->filtro->setGet(array("tipo_afa" => $tipo)); } if (is_int($subTipo)) { $this->filtro->setGet(array("subtipo_afa" => $subTipo)); } $usrValidar = new Usuarios(); $aluno = $usrValidar->getAluno((int) $pkAluno); $sqlAfa = new SqlAfaAlunos(); $sqlTipos = new SqlTipo(); $sqlSubtipos = new SqlSubTipo(); $registros = $sqlAfa->deAluno($aluno, $this->filtro); //Passando os dados para o view $this->loadPlugin("filtros_de_tela")->setUserFiltros($aluno)->setData("aluno", $aluno)->setData("afaTipos", $sqlTipos->listarTodos($this->filtro))->setData("afaSubTipos", $sqlSubtipos->listarTodos($this->filtro)->fetchAll())->setData("registros", $registros->fetchAll())->printView(); } catch (Exception $exc) { $this->close($exc); } }
/** * Método que salva as respostas do aluno no testes do capítulo * e retorna a sua nota. */ private function set_respostas() { $usrAux = new Usuarios(); $sqlTopico = new SqlTopico(); $nota = 0; $respostasAluno = array(); try { $this->filtro->initPost('topico'); $tipo = filter_input(INPUT_POST, "testePara"); $aluno = $usrAux->getAluno(false); $topico = $sqlTopico->get($this->filtro->post('topico')); if ($tipo == "capitulo") { $sqlTeste = new SqlTesteCapitulo(); } elseif ($tipo == "topico") { $sqlTeste = new SqlTesteTopico(); } else { throw new Exception("O alvo do teste não é permitido"); } $teste = $sqlTeste->porAlunoTopico($aluno, $topico); if (!$teste) { throw new Exception("O teste não foi encontrado"); } //Verificando se o aluno já realizou o teste e pode refaze-lo if (!$teste->podeRefazer()) { throw new Exception('Desculpe, mas sua nota não ' . 'permite que o teste seja refeito.'); } //Lendo as respostas $resposta = filter_input(INPUT_POST, 'resspostas', FILTER_SANITIZE_MAGIC_QUOTES); $respostasStr = substr($resposta, 0, -1); $respostas = explode(',', $respostasStr); $questoes = $teste->getQuestoes(); if (count($respostas) != count($questoes)) { throw new Exception('Ainda há questões sem resposta. ' . 'Volte e responda todas.'); } foreach ($respostas as $resp) { $par = explode('=', $resp); $respostasAluno[trim($par[0])] = trim($par[1]); foreach ($questoes as $quest) { if ($quest->getId() == $par[0]) { if ($quest->getGabarito() == $par[1]) { ++$nota; } } } } $teste->setNota((double) $nota); if (!$sqlTeste->salvaRespostas($teste, $respostasAluno)) { throw new Exception('Erro ao tentar salvar as suas respostas. ' . 'Tente novamente mais tarde.'); } if (!$sqlTeste->salvarNota($teste)) { throw new Exception('Erro ao tentar salvar a sua nota. ' . 'Tente novamente mais tarde.'); } //Gerando a resposta $tmp = new stdClass(); $tmp->nota = $teste->getNota(); $this->appendResposta($tmp); $this->statusTrue(); $this->setMensagem('Nota salva com sucesso'); } catch (SqlException $sql) { $this->setMensagem('Ocorreu um erro interno. ' . 'Tente novamente mais tarde.'); } catch (Exception $exc) { $this->setMensagem($exc->getMessage()); } $this->printResposta(); }
//Trecho temporário $isSGDE = false; $ant = $_SERVER["HTTP_REFERER"] ?: false; if (is_string($ant)) { $parseUrl = parse_url($ant); $host = $parseUrl["host"] ?: false; $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; }
/** * Método que retorna a foto do aluno informado ou logado * @param int $usuario */ public function get_foto($usuario = false) { try { $this->filtro->initGets(array("width", "height")); $usrAux = new Usuarios(); $sqlUnidade = new SqlUnidade(); $aluno = $usrAux->getAluno((int) $usuario); //Definindo o caminho de acordo com o tipo de usuário buscado $unidade = $sqlUnidade->deAluno($aluno)->fetch(); $caminho = "alunos/{$unidade->getId()}/{$aluno->getFoto()}"; $arquivo = new Arquivos(); $img = $arquivo->getPastaUpload($caminho); if (!file_exists($img) || is_dir($img)) { throw new Exception("A foto do usuário não foi encontrada ou ele " . "não possue foto cadastrada"); } $imagem = new Image($img); if ($this->filtro->getInstance("dimension") instanceof Dimension) { $imagem->setNewDimesion($this->filtro->getInstance("dimension")); } $imagem->setQuality(100); $imagem->setAntiAlias(TRUE); $imagem->setType(""); $getImage = new GetImage($imagem); $getImage->__toString(); } catch (Exception $exc) { $this->setMensagem($exc->getMessage()); $this->printResposta(); } die; }
/** * Método que gera a página genérica do historico do fap * @param int $pkUsuario O código do coordenador * @param int $tipo O filtro de tipo * @param int $subtipo O filtro de subtipo */ private function historicoGeral($pkUsuario, $tipo = FALSE, $subtipo = FALSE) { try { $usr = new Usuarios(); $sqlfap = new SqlFapEqPedagogica(); //Definindo os filtros $this->initGets(array("de", "ate", "professor", "coordenador")); if (is_int($tipo)) { $this->filtro->setGet(array("tipo_fap" => $tipo)); } if (is_int($subtipo)) { $this->filtro->setGet(array("subtipo_fap" => $subtipo)); } if ($this->filtro->issetGet('coordenador')) { $sqlCoord = new SqlCoordenador(); $coordenador = $sqlCoord->get($this->filtro->get('coordenador')); } else { $coordenador = $usr->getCoordenador((int) $pkUsuario); } // $registros = $sqlfap->deCoordenador($coordenador, $this->filtro); //Passando os dados para o view $this->loadPlugin("jquery.tablesorter")->loadPlugin("conceitos")->setData("tipo", $tipo)->setData("subtipo", $subtipo)->setData("coordenador", $coordenador)->setData("registros", $registros)->printView(); } catch (SqlException $sql) { echo Javascript::alert("Ocorreu um erro interno. " . "Tente novamente mais tarde"); die(Javascript::shadowboxClose()); } catch (Exception $exc) { echo Javascript::alert($exc->getMessage()); die(Javascript::shadowboxClose()); } }
/** * Método que exibe a distribuição de atendimentos pelo soep. * * @param type $pkUsuario */ public function distribuicao_de_atendimentos_por_familiares($pkUsuario = 0) { try { $this->initGets(array('de', 'ate', 'coordenador')); $this->filtro->setGet(array('subtipo_afa' => Subtipo::SUB_TIPO_CONVERSA_FAMILIA)); $usr = new Usuarios(); $sqlAfa = new SqlAfaEqPedagogica(); $sqlResponsavel = new SqlResponsavelEqPedagogica(); // if ($this->filtro->issetGet('coordenador')) { $sqlCoord = new SqlCoordenador(); $coordenador = $sqlCoord->get($this->filtro->get('coordenador')); } else { $coordenador = $usr->getCoordenador((int) $pkUsuario); } ////////////////////////////// $responsaveis = $sqlResponsavel->deCoordenadorDistr($coordenador); ////////////////////////////// $anotacoes = $sqlAfa->deCoordenadorTemp($coordenador, $this->filtro); $this->setUserFiltros($coordenador)->setData('coordenador', $coordenador)->setData('responsaveis', $responsaveis)->setData('anotacoes', $anotacoes->fetchAll())->printView(); } catch (Exception $exc) { $this->close($exc); } }
/** * Método que gera a página de exibição do tópico acessado na home do estudo online. * Só é exibido o tópico já dado em sala de aula. * * @param int $topicoId O código do tópico */ public function estudoOnlineTopico($topicoId) { $this->load->helper('link'); $usrAux = new Usuarios(); $sqlTurma = new SqlTurma(); $sqlTopico = new SqlTopicoAula(); $sqlAnexo = new SqlAnexosAula(); $sqlQuestao = new SqlQuestaoAula(); $sqlAcomp = new SqlAcompanhamento(); $sqlLivreto = new SqlLivretoAula(); $teste = false; try { $aluno = $usrAux->getAluno(false); $turma = $sqlTurma->deALuno($aluno)->fetch(); $topico = $sqlTopico->get((int) $topicoId); $anexos = $sqlAnexo->deTopicoECapitulo($topico); $acomp = $sqlAcomp->deTopico($topico); $livreto = $sqlLivreto->deTopico($topico); if ($acomp->getStatus() == Acompanhamento::STATUS_CONCLUIDO || $acomp->getStatus() == Acompanhamento::STATUS_REVISADO) { //Criando um teste para o tópico $sqlTeste = new SqlTesteTopico(); $teste = $sqlTeste->porAlunoTopico($aluno, $topico); if (!$teste) { //Verificando se existem questões cadastrdas para realizar o teste if ($sqlQuestao->temParaTopico($topico)) { //Tem //Gera o teste $teste = new TesteTopico(); } } } //Passando os dados para o view $this->loadPlugin('shadowbox'); $this->setData('aluno', $aluno); $this->setData('turma', $turma); $this->setData('livro', $livreto); $this->setData('topico', $topico); $this->setData('anexos', $anexos); $this->setData('teste', $teste); $this->printView(); } catch (SqlException $sql) { echo $sql->getMessage(); echo Javascript::alert('Ocorreu um erro interno. ' . 'Tente novamente mais tarde.'); // $this->close(true); } catch (Exception $exc) { echo $exc->getMessage(); // $this->close(true); } }
/** * Método que gera a página com a distribuição de atendimentos por agente. * * @param int $pkProfessor O código do professor na tabela de usuários */ public function distribuicao_de_atendimentos($pkProfessor = 0) { try { $this->initGets(array("de", "ate", "tipo_fap", "professor", "unidade", "ensino", "serie", "turma")); // $validarUsr = new Usuarios(); $sqlFap = new SqlFapProfessores(); $sqlResumo = new SqlResumoProfessor(); $sqlCoordenador = new SqlCoordenadoresProfessores(); if ($this->filtro->issetGet("professor")) { $professor = $validarUsr->getProgfessor($this->filtro->get("professor")); } else { $professor = $validarUsr->getProgfessor((int) $pkProfessor); } //Apliando os filtros $this->filtro->setGet(array("tipo_fap" => Tipo::TIPO_ATENDIMENTO)); // $resumo = $sqlResumo->get((int) $pkProfessor); $ocorrencias = $sqlFap->deProfessor($professor, $this->filtro); $funcoes = $sqlCoordenador->listarFuncoes($this->filtro); //Passando os dados para o view $this->loadPlugin('filtros_de_tela')->loadPlugin('calc-itens')->setUserFiltros($professor)->setData('professor', $professor)->setData('resumo', $resumo)->setData('registros', $ocorrencias->fetchAll())->setData("funcoes", $funcoes)->printView(); } catch (Exception $exc) { $this->close($exc); } }
/** * Método que atualiza a foto do aluno * @param int $pkAluno O código do aluno na tabela de usuários */ private function editarFoto($pkAluno = 0) { header('Content-Type: application/json; charset=UTF-8'); $sqlUsuario = new SqlUsuario(); $usrAux = new Usuarios(); try { $aluno = $usrAux->getAluno((int) $pkAluno); if (!isset($_FILES["novafoto"])) { throw new Exception("Ocorreu um erro ao tentar atualizar a foto. " . "Recarregue a página e tente novamente"); } $foto = $_FILES["novafoto"]; $sqlUsuario->atualizarFoto($aluno->defineFoto($foto)); die(json_encode(array("status" => true, "mensagem" => "Foto editada com sucesso"))); } catch (Exception $exc) { die(json_encode(array("status" => false, "mensagem" => $exc->getMessage()))); } }