/** * Método que altera a foto do usuário no banco * @param array $foto Um array do tipo $_FILE contendo a nova foto a ser definida * @throw Exception */ public function novaFoto(array $foto) { if (!is_int($this->pk_usuario)) { throw new Exception("O usuário informado é inválido"); } if (!$this->pk_usuario) { throw new Exception("O usuário informado é inválido"); } if (!count($foto)) { throw new Exception("A nova foto é inválida"); } $formatosPermitidos = array('jpeg' => array('image/jpeg', 'image/pjpeg'), 'jpg' => array('image/jpeg', 'image/pjpeg'), 'jpe' => array('image/jpeg', 'image/pjpeg'), 'png' => array('image/png', 'image/x-png')); $arquivo = new Arquivos(); $this->foto = $arquivo->upload($foto, self::DIR_FOTOS, $formatosPermitidos); $query = "update public.usuario set foto='{$this->foto}' where pk_usuario={$this->pk_usuario}"; return $this->queryExec($query); }
/** * Método que trata a requisição POST da página cadastrar_anexo_especifico */ private function cadastrarAnexoEspecifico($pkLivro, $capitulo, $materia, $tipo, $finalidade, $conteudo) { $usrvalidar = new \Kernel\Auxiliar\Usuarios(); // $anexos = new Anexos(); $sqlAnexos = new \aula\models\dao\SqlAnexosAula(); $arquivos = new Arquivos(); // $sqlCapitulo = new \Kernel\Sql\Livro\SQlCapitulo(); $sqlConteudo = new aula\models\dao\SqlTopicoAula(); $sqlSerie = new aula\models\dao\SqlSerieAula(); try { //Definindo os dados do objeto $idAnexo = (int) $this->input->post("anexo"); if ($idAnexo) { //Caso esteja em modo de edição de anexos $anexos = $sqlAnexos->get($idAnexo); } $anexos->setTipo((int) $tipo); $anexos->setAnexoDesc($this->input->post("anexo_desc")); $anexos->setFinalidade((int) $finalidade); $anexos->setObjetivo((int) $this->input->post("objetivo")); $anexos->setAnoEnvio(date("Y")); $anexos->setObs(filter_input(INPUT_POST, "obs", FILTER_SANITIZE_MAGIC_QUOTES)); $anexos->setFonte($this->input->post("fonte")); $anexos->setFonteUrl($this->input->post("fonte_url")); //Variável de configuração de acordo com o tipo de anexo informado $nomeTipos = $anexos->dadosAnexo(); //Fazendo definições especificas por tipo de anexo if ($anexos->getTipo() == Anexos::TIPO_AUDIO) { $anexos->setSubtipo((int) $this->input->post("subtipo")); if ($anexos->getSubtipo() == Anexos::SUBTIPO_AUDIO_ARQUIVO) { $arquivo = $_FILES["arquivo"]; $uploaddir = Anexos::DIR_UPLOAD . DIRECTORY_SEPARATOR . $nomeTipos["pasta"]; $anexos->setArquivoNome(Util::retira_caracteres_especiais($arquivo['name'])); $arquivos->upload($arquivo, $uploaddir, $nomeTipos["extencoes"], $anexos->getNome()); $anexos->setExtensao(substr($anexos->getNome(), strrpos($anexos->getNome(), ".") + 1)); } else { $anexos->setArquivoNome($this->input->post("url")); } } elseif ($anexos->getTipo() == Anexos::TIPO_VIDEO) { $anexos->setSubtipo(0); $anexos->setArquivoNome($this->input->post("url_video")); } elseif ($anexos->getTipo() == Anexos::TIPO_ANEXO) { $arquivo = $_FILES["arquivo"]; $uploaddir = Anexos::DIR_UPLOAD . DIRECTORY_SEPARATOR . $nomeTipos["pasta"]; $anexos->setArquivoNome(Util::retira_caracteres_especiais($arquivo['name'])); $arquivos->upload($arquivo, $uploaddir, $nomeTipos["extencoes"], $anexos->getNome()); $anexos->setExtensao(substr($anexos->getNome(), strrpos($anexos->getNome(), ".") + 1)); $mimeType = $arquivo["type"]; $anexos->setSubtipo(is_int(strpos($mimeType, "image")) ? Anexos::SUBTIPO_ANEXO_IMAGEM_ARQUIVO : Anexos::SUBTIPO_ANEXO_OUTROS); } elseif ($anexos->getTipo() == Anexos::TIPO_TESTE) { $anexos->setSubtipo(0); $anexos->setArquivoNome("Componente não definido ainda no HTML"); } elseif ($anexos->getTipo() == Anexos::TIPO_RA) { $anexos->setSubtipo(0); $anexos->setArquivoNome($this->input->post("pagina")); } elseif ($anexos->getTipo() == Anexos::TIPO_GALERIA) { $anexos->setSubtipo(0); $anexos->setArquivoNome($_SESSION['pasta']); } elseif ($anexos->getTipo() == Anexos::TIPO_URL) { $anexos->setSubtipo(0); $anexos->setArquivoNome($this->input->post("url")); } //Definindo o tópico ou capítulo para associar if ((int) $conteudo) { $voidConteudo = $sqlConteudo->get((int) $conteudo); $serie = $sqlSerie->deTopico($voidConteudo); } else { $voidConteudo = $sqlCapitulo->get((int) $capitulo); $serie = $sqlSerie->deCapitulo($voidConteudo); } //Salvando o anexo no banco de dados if ($anexos->getId()) { $sqlAnexos->update($anexos); $this->session->set_flashdata('msg', '<p class="alert ok">' . 'Conteúdo Digital atualizado com sucesso.</p>'); } else { $lastId = $sqlAnexos->insert($anexos); $anexos->setId($lastId); $sqlAnexos->insertVinculo($anexos, $serie, $voidConteudo); $this->session->set_flashdata('msg', '<div class="alert ok">Link cadastrado com sucesso.</div>'); } //Defirecionando para a página de exibição $shadowbox = $this->input->post('shadowbox') == 1 ? '?shadowbox=1' : ''; redirect(base_url("aula/conteudos/cadastrar_anexo/{$pkLivro}/{$capitulo}/{$materia}/" . ((int) $conteudo ? $conteudo : 0) . "/{$shadowbox}")); //$pkLivro = 0, $pkCapitulo = 0, $pkMateria = 0, $pkConteudo = 0 return ""; } catch (Exception $e) { ini_set('default_charset', 'utf-8'); echo Javascript::alert($e->getMessage()); die(Javascript::history_back()); } }