Skip to content

Instantly share code, notes, and snippets.

@andre-mz
Created January 9, 2020 21:58
Show Gist options
  • Save andre-mz/588088d69acb884407aae09458fae647 to your computer and use it in GitHub Desktop.
Save andre-mz/588088d69acb884407aae09458fae647 to your computer and use it in GitHub Desktop.
Controller
<?php
class Eventos extends Controller {
public function __construct(){
if (!estaLogado()){
redirect('usuario/login ');
}
//instancia as classes do model
$this->postModel = $this->model('Evento');
$this->userModel = $this->model('Usuario');
}
public function index(){
$eventos = $this->postModel->getEventos2();
$dados= [
'eventos' => $eventos
];
$this->view('eventos/index', $dados);
}
/**ADICIONAR EVENTOS*/
public function adicionar(){
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$dados = [
'titulo' => trim($_POST['titulo']),
'cat' => trim($_POST['cat']),
'data' => trim($_POST['data']),
'img1' => trim($_POST['img1']),
'img2' => trim($_POST['img2']),
'corpo' => trim($_POST['corpo']),
'usuario_id' => $_SESSION['usuario_id'],
'titulo_erro' => '',
'cat_erro' =>'',
'data_erro' => '',
'img1_erro' => '',
'img2_erro' => '',
'corpo_erro' => '',
];
if(empty($dados['titulo'])){
$dados['titulo_erro'] = 'Insira o titulo';
}
if(empty($dados['corpo'])){
$dados['corpo_erro'] = 'Insira o conteudo';
}elseif(strlen($dados['corpo']) < 400){
//checa o tamanho do password
$dados['corpo_erro'] = 'O Conteudo do texto e muito curto, 400 palavras no minimo';
}
if(empty($dados['cat'])){
$dados['cat_erro'] = 'Seleciona uma categoria';
}
if(empty($dados['data'])){
$dados['data_erro'] = 'Insira a data do evento';
}
if(empty($dados['img1'])){
$dados['img1_erro'] = 'Insira a imagem do evento';
}
if(empty($dados['img2'])){
$dados['img2_erro'] ='Insira a segunda imagem do evento';
}
if(empty($dados['titulo_erro']) && empty($dados['corpo_erro']) && empty($dados['cat_erro']) &&
empty($dados['data_erro']) && empty($dados['img1_erro']) && empty($dados['img2_erro'])){
if($this->postModel->addEvento($dados)){
flash('post_message', 'Adicionado com sucesso');
redirect('eventos');
}else{
die('Algo deu Errado');
}
//le a view com error
}else{
$this->view('eventos/adicionar', $dados);
}
}else{
$dados = [
'titulo' => trim($_POST['titulo']),
'cat' => trim($_POST['cat']),
'data' => trim($_POST['data']),
'img1' => trim($_POST['img1']),
'img2' => trim($_POST['img2']),
'corpo' => trim($_POST['corpo'])
];
$this->view('eventos/adicionar', $dados);
}
}
/**
* Visualzar evento
*/
public function visualizar($id){
$evento = $this->postModel->pegaEventoId($id);
$usuario = $this->userModel->pegaUsuarioId($evento->usuario_id);
$dados = [
'evento' => $evento,
'usuario' => $usuario
];
$this->view('eventos/visualizar', $dados);
}
public function editar($id){
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
$dados = [
'id' => $id,
'titulo' => trim($_POST['titulo']),
'cat' => trim($_POST['cat']),
'data' => trim($_POST['data']),
'img1' => trim($_POST['img1']),
'img2' => trim($_POST['img2']),
'corpo' => trim($_POST['corpo']),
'usuario_id' => $_SESSION['usuario_id'],
'titulo_erro' => '',
'cat_erro' =>'',
'data_erro' => '',
'img1_erro' => '',
'img2_erro' => '',
'corpo_erro' => '',
];
//validar titulo
if(empty($dados['titulo'])){
$dados['titulo_erro'] = 'Insira o titulo';
}
//validar conteudo
if(empty($dados['corpo'])){
$dados['corpo_erro'] = 'Insira o conteudo';
}elseif(strlen($dados['corpo']) < 400){
//checa o tamanho do password
$dados['corpo_erro'] = 'O Conteudo do texto e muito curto, 400 palavras no minimo';
}
if(empty($dados['cat'])){
$dados['cat_erro'] = 'Seleciona uma categoria';
}
if(empty($dados['data'])){
$dados['data_erro'] = 'Insira a data do evento';
}
if(empty($dados['img1'])){
$dados['img1_erro'] = 'Insira a imagem do evento';
}
if(empty($dados['img2'])){
$dados['img2_erro'] ='Insira a segunda imagem do evento';
}
//validatr erro
if(empty($dados['titulo_erro']) && empty($dados['corpo_erro']) && empty($dados['cat_erro']) &&
empty($dados['data_erro']) && empty($dados['img1_erro']) && empty($dados['img2_erro'])){
if($this->postModel->updateEvento($dados)){
flash('post_message', 'Actualizado');
redirect('eventos');
}else{
die('Algo deu Errado');
}
//ler vista do erro
}else{
$this->view('eventos/actualizar', $dados);
}
}
else{
//checa o usuario e chama o method a partir do modal
$evento = $this->postModel->pegaEventoId($id);
if($evento->usuario_id != $_SESSION['usuario_id']){
redirect('eventos');
}
$dados = [
'id' => $id,
'titulo' => $evento->titulo,
'corpo' => $evento->corpo
];
$this->view('eventos/actualizar', $dados);
}
}
//delete eventos
public function apagar($id){
if($_SERVER['REQUEST_METHOD'] == 'POST'){
//chaca o usuario
$evento = $this->postModel->pegaEventoId($id);
if($evento->usuario_id != $_SESSION['usuario_id']){
redirect('eventos');
}
//chama o method delete do model
if($this->postModel->apagaEvento($id)){
flash('post_message', 'Evento Removido');
redirect('eventos');
}else{
die('Algo deu Errado');
}
}else{
redirect('eventos');
}
}
/**
* LINKS DE ENDERECAMENTO
*/
public function todos(){
$eventos = $this->postModel->getEventos();
$dados= [
'eventos' => $eventos
];
$this->view('eventos/todos', $dados);
}
//anucio
public function anucio(){
$anucio = $this->postModel->getEventos();
$dados= [
'eventos' => $anucio
];
$this->view('eventos/anucio', $dados);
}
//show/festas
public function show(){
$eventos = $this->postModel->getEventos();
$dados= [
'eventos' => $eventos
];
$this->view('eventos/show', $dados);
}
//noticia
public function noticia(){
$eventos = $this->postModel->getEventos();
$dados= [
'eventos' => $eventos
];
$this->view('eventos/noticia', $dados);
}
//calendario
public function calendario(){
$eventos = $this->postModel->getEventos();
$dados= [
'eventos' => $eventos
];
$this->view('eventos/calendario', $dados);
}
//tabelas
public function tabelas(){
$eventos = $this->postModel->getEventos();
$dados =[
'eventos' => $eventos
];
$this->view('eventos/tabelas', $dados);
}
//galeria
public function galeria(){
$eventos = $this->postModel->getEventos();
$dados =[
'eventos' => $eventos
];
$this->view('eventos/galeria', $dados);
}
}
<?php
class Usuarios extends Controller {
public function __construct(){
$this->usuarioModel = $this->model('Usuario');
}
/**
* Registrar
*/
public function registro(){
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
//Processa o formulario
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
$dados =[
'nome' => trim($_POST['nome']),
'apelido' => trim($_POST['apelido']),
'email' => trim($_POST['email']),
'password' => trim($_POST['password']),
'confirma_password' => trim($_POST['confirma_password']),
'nome_erro' => '',
'apelido_erro' => '',
'email_erro' => '',
'password_erro' => '',
'confirma_password_erro' => ''
];
/**
* VALIDACACO
*/
//validar nome
if (empty($dados['nome'])){
$dados['nome_erro'] = 'Por favor insira seu nome';
}
//apelido
if (empty($dados['apelido'])){
$dados['apelido_erro'] = 'Por favor insira seu apelido';
}
//email
if (empty($dados['email'])){
$dados['email_erro'] = 'Por favor insira seu email';
}
else{
//checa se o email e valido
if ($this->usuarioModel->econtraUsuarioPorEmail($dados['email'])){
$dados['email_erro'] = 'Email ja em uso';
}
}
//password
if (empty($dados['password'])){
$dados['password_erro'] = 'Por favor insira a sua senha';
}
elseif(strlen($dados['password']) < 8){
//checa o tamanho do password
$dados['password_erro'] = 'A sua senha tem que 8 caracteres no minimo';
}
//confirmar o password
if (empty($dados['confirma_password'])){
$dados['confirma_password_erro'] = 'Por favor confirma a sua senha';
}
else{
//verificar os passwords sao mesmos
if ($dados['confirma_password'] != $dados['password']){
$dados['confirma_password_erro'] = 'A senha nao corresponde';
}
}
//verificar se erros nao estao vazio
if (empty($dados['nome_erro']) &&
empty($dados['apelido_erro']) &&
empty($dados['email_erro']) &&
empty($dados['password_erro']) &&
empty($dados['confirma_password_erro'])){
$dados['password'] = password_hash($dados['password'], PASSWORD_DEFAULT);
if ($this->usuarioModel->registro($dados)){
flash('register_success', 'Registrado com sucesso');
redirect('Usuarios/login');
}
}
else {
$this->view('usuario/registro', $dados);
}
}
//o erros sao passados a parir desse array
else{
$dados =[
'nome' => '',
'apelido' => '',
'email' => '',
'password' => '',
'confirma_password' => '',
'nome_erro' => '',
'apelido_erro' => '',
'email_erro' => '',
'password_erro' =>'',
'confirma_password_erro' => ''
];
//le a view
$this->view('usuario/registro', $dados);
}
}
//login
public function login(){
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
//processa o formulario
$_POST = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
$dados = [
'email' => trim($_POST ['email']),
'password' => trim($_POST['password']),
'email_erro' => '',
'password_erro' => '',
];
//validar email
if(empty($dados['email'])){
$dados['email_erro'] = 'Por favor insira o email';
}
else{
if($this->usuarioModel->econtraUsuarioPorEmail($dados['email'])){
//user found
}
else{
$dados['email_erro'] = 'Usuario nao econtrado';
}
}
//validar password
if (empty($dados['password'])){
$dados['password_erro'] = 'Por favor insira su senha';
}
elseif (strlen($dados['password']) < 8){
$dados['password_erro'] = 'Password tem que ter 8 caracteres no minimo';
}
//garante que o erro esteja vazio
if (empty($dados['email_erro']) && (empty($dados['password_erro']))){
$loggedInUsuario = $this->usuarioModel->login($dados['email'], $dados['password']);
if ($loggedInUsuario){
//cria sessao
$this->criarUsuarioSessao($loggedInUsuario);
}
else{
$dados['password_erro'] = 'Sua senha esta incorecta';
$this->view('usuario/login', $dados);
}
}
else{
$this->view('usuario/login', $dados);
}
}
else{
$dados =[
'email' => '',
'password' => '',
'email_erro' => '',
'password_erro' => ''
];
$this->view('usuario/login', $dados);
}
}
//configuracao da variavel da sessao dos usuarios
public function criarUsuarioSessao($usuario){
$_SESSION['usuario_id'] = $usuario->id;
$_SESSION['nome'] = $usuario->nome;
$_SESSION['email'] = $usuario->email;
redirect('Eventos/index');
}
//logout e destroy sessao
public function logout(){
unset($_SESSION['id']);
unset($_SESSION['nome']);
unset($_SESSION['email']);
session_destroy();
redirect('paginas/index');
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment