Created
January 26, 2016 07:50
-
-
Save valdiney/a9f2efa9c5e7431c357e to your computer and use it in GitHub Desktop.
Controller Publicidade
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
class Publicidade_Controller extends Controller | |
{ | |
protected $view; | |
protected $publicidade; | |
protected $upload; | |
protected $validator; | |
public function __construct(Array $models, Array $services) | |
{ | |
$this->publicidade = $models['Publicidade']; | |
$this->upload = $services['UploadFiles']; | |
$this->validator = $services['Data_Validator']; | |
$this->view = $this->view(); | |
} | |
public function form_cadastrar() | |
{ | |
$this->view->layout('layout_dashboard'); | |
return $this->view->make('publicidade.form_cadastrar_tipo_campanha'); | |
} | |
# Cadastrar o tipo da Publicidade | |
public function form_cadastrar_tipo_publicidade() | |
{ | |
$this->view->layout('layout_dashboard'); | |
return $this->view->make('publicidade.form_cadastrar_banner'); | |
} | |
public function tipo_publicidade() | |
{ | |
if (Input::in_post('tipo_campanha') == 'banner') { | |
return Redirect::to('publicidade.form_cadastrar_banner'); | |
} | |
if (Input::all() == 'link') { | |
return Redirect::to('publicidade.fsddf'); | |
} | |
} | |
# Cadastro da imagem do Banner | |
public function form_cadastrar_banner() | |
{ | |
$this->view->layout('layout_dashboard'); | |
return $this->view->make('publicidade.form_cadastrar_banner'); | |
} | |
# Edição da imagem do Banner | |
public function form_edicao_banner() | |
{ | |
$this->view->layout('layout_dashboard'); | |
$banner = $this->publicidade->find(Input::in_get('id_banner')); | |
return $this->view->make('publicidade.form_editar_imagem_banner', compact('banner')); | |
} | |
# Realiza o (CADASTRO) do Banner na tabela (publicidade) | |
public function cadastro_banner() | |
{ | |
$this->upload->setInputFile($_FILES['file_banner']); | |
$this->upload->sendTo('public/img/img_banner/'); | |
$this->upload->SetMaxFileSize(10); | |
$this->upload->setExtensions(array('jpg','jpeg','png')); | |
# Verifica se o campo está em branco | |
if (empty(Input::in_files('file_banner', true))) { | |
Session::flash('error', 'Escolha uma Imagem antes de tentar enviar o formulário.'); | |
return Redirect::back(); | |
} | |
if ($this->upload->getErros() == 1) { | |
Session::flash('error', 'Erro Critico! Entre em contato com o Administrador do Sistema.'); | |
return Redirect::back(); | |
} | |
if ($this->upload->getErros() == 3) { | |
Session::flash('error', 'Essa imagem é muito grande. Escolha uma imagem menor.'); | |
return Redirect::back(); | |
} | |
if ($this->upload->getErros() == 4) { | |
Session::flash('error', 'O Sistema não aceita esse tipo de Arquivo. Por favor, somente <b>(JPG e PNG)</b>.'); | |
return Redirect::back(); | |
} | |
# Realiza o Upload da Imagem | |
if ($this->upload->move()) { | |
$data_banner['id_usuario'] = Session::get_session('usuario_id'); | |
$data_banner['imagem'] = $this->upload->getPath(); | |
if ($this->publicidade->cadastrar_banner($data_banner)) { | |
$id_banner = $this->publicidade->get_last_id(); | |
return Redirect::to('publicidade.form_cadastrar_informacao_banner', "id_banner={$id_banner}"); | |
} else { | |
echo 'Erro ao Cadastrar Banner'; | |
} | |
} else { | |
echo 'Erro ao Enviar Banner'; | |
} | |
} | |
# Realiza a (EDIÇÃO) do Banner na tabela (publicidade) | |
public function edicao_imagem_banner() | |
{ | |
$this->upload->setInputFile($_FILES['file_banner']); | |
$this->upload->sendTo('public/img/img_banner/'); | |
$this->upload->SetMaxFileSize(10); | |
$this->upload->setExtensions(array('jpg','jpeg','png')); | |
# Verifica se o campo está em branco | |
if (empty(Input::in_files('file_banner', true))) { | |
Session::flash('error', 'Escolha uma Imagem antes de tentar enviar o formulário.'); | |
return Redirect::back(); | |
} | |
if ($this->upload->getErros() == 1) { | |
Session::flash('error', 'Erro Critico! Entre em contato com o Administrador do Sistema.'); | |
return Redirect::back(); | |
} | |
if ($this->upload->getErros() == 3) { | |
Session::flash('error', 'Essa imagem é muito grande. Escolha uma imagem menor.'); | |
return Redirect::back(); | |
} | |
if ($this->upload->getErros() == 4) { | |
Session::flash('error', 'O Sistema não aceita esse tipo de Arquivo. Por favor, somente <b>(JPG e PNG)</b>.'); | |
return Redirect::back(); | |
} | |
# Realiza o Upload da Imagem | |
if ($this->upload->move()) { | |
$id_banner = Input::in_get('id_banner'); | |
$banner = $this->publicidade->find($id_banner); | |
if (file_exists($banner['imagem'])) { | |
unlink($banner['imagem']); | |
} else { | |
echo 'Erro ao tentar editar imagem'; | |
} | |
$data_banner['id_usuario'] = Session::get_session('usuario_id'); | |
$data_banner['imagem'] = $this->upload->getPath(); | |
if ($this->publicidade->editar_banner($data_banner, $id_banner)) { | |
Session::flash('success', 'Imagem do Banner foi Editada com Sucesso.'); | |
return Redirect::to('publicidade.form_edicao_banner', "id_banner={$id_banner}"); | |
} else { | |
echo 'Erro ao Cadastrar Banner'; | |
} | |
} else { | |
echo 'Erro ao Enviar Banner'; | |
} | |
} | |
public function form_cadastrar_informacao_banner() | |
{ | |
$this->view->layout('layout_dashboard'); | |
$banner = $this->publicidade->find(Input::in_get('id_banner')); | |
return $this->view->make('publicidade.form_cadastro_informacao_banner', compact('banner')); | |
} | |
# Cadastra as Informações do Banner | |
public function cadastro_informacao_banner() | |
{ | |
$id_banner = Input::in_get('id_banner'); | |
# Data do servidor | |
$data_atual = date('Y-m-d'); | |
# Hora do servidor | |
echo $hora_atual = Date::Hour(); | |
# Datas do formulário | |
$data_inicio = Input::in_post('data_inicio_apresentacao'); | |
$data_fim = Input::in_post('data_fim_apresentacao'); | |
# Horas do formulário | |
$hora_inicio = Input::in_post('hora_inicio_apresentacao'); | |
$hora_fim = Input::in_post('hora_fim_apresentacao'); | |
# Não permite cadastrar campanha em horarios já passados | |
if ($data_inicio == $data_atual and $hora_inicio < $hora_atual) { | |
Session::flash('error',"<b>Obs:</b> No dia atual esse horário expirou, ou seja, esse horário já passou. Já são <b>{$hora_atual}</b>"); | |
return Redirect::to('publicidade.form_cadastrar_informacao_banner', "id_banner={$id_banner}"); | |
} | |
# Não permite cadastrar campanha em horarios já passados | |
if ($data_fim == $data_atual and $hora_fim < $hora_atual) { | |
Session::flash('error',"<b>Obs:</b> No dia atual esse horário expirou, ou seja, esse horário já passou. Já são <b>{$hora_atual}</b>"); | |
return Redirect::to('publicidade.form_cadastrar_informacao_banner', "id_banner={$id_banner}"); | |
} | |
# Não permite cadastrar campanha para ser apresentada em datas já passadas | |
if ($data_inicio < $data_atual) { | |
$data_atual = Date::date_format($data_atual); | |
$data_inicio = Date::date_format($data_inicio); | |
Session::flash( | |
'error', " | |
<b>Obs:</b> Estamos em <b>{$data_atual}</b> e você está tentando | |
cadastrar uma campanha para ser apresentada em <b>{$data_inicio}.</b> | |
Essa data já passou! | |
"); | |
return Redirect::to('publicidade.form_cadastrar_informacao_banner', "id_banner={$id_banner}"); | |
} | |
# Não permite cadastrar campanhas para ser encerrada em datas já passadas | |
if ($data_fim < $data_atual) { | |
$data_atual = Date::date_format($data_atual); | |
$data_fim = Date::date_format($data_fim); | |
Session::flash( | |
'error', " | |
<b>Obs:</b> Estamos em <b>{$data_atual}</b> e você está tentando | |
cadastrar uma campanha para ser Encerrada em <b>{$data_fim}.</b> | |
Essa data já passou! | |
"); | |
return Redirect::to('publicidade.form_cadastrar_informacao_banner', "id_banner={$id_banner}"); | |
} | |
# Valida os campos de entrada | |
$this->validator->set('nome_campanha', Input::in_post('nome_campanha'))->is_required()->min_length(5) | |
->set('data_inicio_apresentacao', Input::in_post('data_inicio_apresentacao'))->is_required() | |
->set('data_fim_apresentacao', Input::in_post('data_fim_apresentacao'))->is_required(); | |
$data_banner['nome_campanha'] = Input::in_post('nome_campanha'); | |
# Recupera data e hora e tranforma em um timestamp valido | |
$data_banner['data_inicio_apresentacao'] = date('Y-m-d H:i:s', strtotime(Input::in_post('data_inicio_apresentacao') . ' ' . Input::in_post('hora_inicio_apresentacao'))); | |
$data_banner['data_fim_apresentacao'] = date('Y-m-d H:i:s', strtotime(Input::in_post('data_fim_apresentacao') . ' ' . Input::in_post('hora_fim_apresentacao'))); | |
$data_banner['prioridade'] = Input::in_post('prioridade'); | |
# Verifica se houve algum erro da validação | |
if ($this->validator->validate()) { | |
if ($this->publicidade->editar_banner($data_banner, $id_banner)) { | |
Session::flash('success', "Campanha Cadastrada com Sucesso."); | |
return Redirect::to('publicidade.form_cadastrar_informacao_banner', "id_banner={$id_banner}"); | |
} else { | |
echo "Erro"; | |
} | |
} | |
foreach ($this->validator->get_errors() as $erro) { | |
Session::flash('error', $erro[0]); | |
} | |
Redirect::back(); | |
} | |
public function tabela_listar_publicidades() | |
{ | |
$this->view->layout('layout_dashboard'); | |
$publicidades = $this->publicidade->listar_publicidades(); | |
# Passa para view o tamanho da consulta | |
$count_publicidade = count($publicidades); | |
# Passa a paginação para view apenas se a consulta for maior do que o determinado | |
if (count($publicidades) > 20) { | |
$publicidades = Pagination::paginator(count($publicidades)/2, $this->publicidade->listar_publicidades()); | |
} | |
return $this->view->make('publicidade.visualizar_campanhas', compact('publicidades', 'count_publicidade')); | |
} | |
public function deletar_publicidade() | |
{ | |
$campanha = $this->publicidade->find(Input::in_get('id_banner')); | |
if ($this->publicidade->deletar_publicidade(Input::in_get('id_banner'))) { | |
# Deleta a imagem na pasta do Servidor | |
if (file_exists($campanha['imagem'])) { | |
unlink($campanha['imagem']); | |
} | |
Session::flash('success', "Campanha Excluida com Sucesso."); | |
} else { | |
Session::flash('error', "Erro ao Excluir Campanha."); | |
} | |
return Redirect::back(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment