Skip to content

Instantly share code, notes, and snippets.

@valdiney
Created January 26, 2016 07:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save valdiney/a9f2efa9c5e7431c357e to your computer and use it in GitHub Desktop.
Save valdiney/a9f2efa9c5e7431c357e to your computer and use it in GitHub Desktop.
Controller Publicidade
<?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