Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@valdiney
Created June 12, 2016 02:06
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/c18f69a06a6e8ba0b08812966a0d29c5 to your computer and use it in GitHub Desktop.
Save valdiney/c18f69a06a6e8ba0b08812966a0d29c5 to your computer and use it in GitHub Desktop.
Exemplo da utilização de um Controler no Ofir Framework.
<?php
class Campanhas_Controller extends Controller
{
protected $user;
protected $view;
protected $layout_pricipal;
protected $campanhas;
protected $upload;
public function __construct(Array $models, Array $services)
{
$this->campanhas = $models['Campanhas'];
$this->upload = $services['Upload'];
$this->view = $this->view();
$this->layout_pricipal = $this->view->layout('admin_layout');
}
public function pagina_lista_campanhas()
{
$this->layout_pricipal;
$campanhas = $this->campanhas->listar_campanhas_ativas();
$count_campanhas_desativadas = count($this->campanhas->listar_campanhas_desativadas());
$detalhes_campanhas = $this->campanhas->detalhes_campanha();
return $this->view->make('campanhas.listar_campanhas',
compact(
'campanhas',
'count_campanhas_desativadas',
'detalhes_campanhas'
));
}
public function pagina_cadastrar()
{
$this->layout_pricipal;
$campanha = $this->campanhas->find(Input::in_get('id_campanha'));
return $this->view->make('campanhas.cadastrar_campanhas', compact('campanha'));
}
public function pagina_editar()
{
$this->layout_pricipal;
$campanha = $this->campanhas->find(Input::in_get('id_campanha'));
return $this->view->make('campanhas.editar_campanhas', compact('campanha'));
}
public function pagina_upload_campanha()
{
$this->layout_pricipal;
return $this->view->make('campanhas.upload_campanha');
}
public function pagina_upload_editar_campanha()
{
$this->layout_pricipal;
return $this->view->make('campanhas.upload_editar_campanha');
}
# Realiza o Upload da imagem da Campanha
public function campanha_upload()
{
$this->upload->setInputFile($_FILES['imagem_file']);
$this->upload->sendTo('public/img/campanhas/');
$this->upload->SetMaxFileSize(10);
$this->upload->setExtensions(array('jpg','jpeg','png','gif'));
# Verifica se o campo está em branco
if (empty(Input::in_files('imagem_file', true))) {
Session::flash('error', 'Selecione uma Imagem do seu Computador.');
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, PNG, GIF)</b>.');
return Redirect::back();
}
# Realiza o Upload da Imagem
if ($this->upload->move()) {
$endereco_imagem = $this->upload->getPath();
$id_campanha = Input::in_get('id_campanha');
# Se vier da página de Edição, redireciona para Edição
if (Input::in_get('pagina_editar') == 'true') {
return Redirect::to('campanhas.campanha_upload_editar', "id_campanha={$id_campanha}|endereco_imagem={$endereco_imagem}");
}
# Se vier da página de Cadastro, redireciona para o Cadastro
if (Input::in_get('pagina_cadastrar') == 'true') {
return Redirect::to('campanhas.campanha_upload_cadastrar', "id_campanha={$id_campanha}|endereco_imagem={$endereco_imagem}");
}
} else {
Session::flash('error', "Erro ao Tentar fazer o Upload da Imagem. Entre em contato com o Administrador do Sistema!");
}
return redirect::back();
}
# Realiza o Cadastro da Imagem da Campanha
public function campanha_upload_cadastrar()
{
$campos['imagem'] = Input::in_get('endereco_imagem');
# Realiza o Cadastro da Imagem
if ($this->campanhas->cadastrar_imagem($campos)) {
$id_campanha = $this->campanhas->get_last_id();
return Redirect::to('campanhas.pagina_cadastrar', "id_campanha={$id_campanha}");
} else {
unlink($campos['imagem']);
Session::flash('error', "Erro ao Tentar Cadastrar a Imagem. Entre em contato com o Administrador do Sistema!");
}
}
# Realiza a Edição da Imagem da Campanha
public function campanha_upload_editar()
{
$id_campanha = Input::in_get('id_campanha');
$campo['imagem'] = Input::in_get('endereco_imagem');
$campanha = $this->campanhas->find($id_campanha);
# Realiza a Edição da Imagem
if ($this->campanhas->update($campo, $id_campanha)) {
Session::flash('success', "Imagem da Campanha Editada com Sucesso");
unlink($campanha['imagem']);
} else {
Session::flash('error', "Erro ao Tentar Cadastrar a Imagem. Entre em contato com o Administrador do Sistema!");
}
return Redirect::to('campanhas.pagina_editar', "id_campanha={$id_campanha}");
}
# Realiza o Cadastro das Informações da Campanha
public function editar()
{
$id_campanha = Input::in_get('id_campanha');
$campos['nome_campanha'] = Input::in_post('nome_campanha');
$campos['data_inicio'] = Input::in_post('data_inicio');
$campos['data_termino'] = Input::in_post('data_termino');
$horas['hora_inicio'] = Input::in_post('hora_inicio');
$horas['hora_termino'] = Input::in_post('hora_termino');
$campos['prioridade'] = Input::in_post('prioridade');
$campos['homens'] = Input::in_post('homens');
$campos['mulheres'] = Input::in_post('mulheres');
$campos['aniversariantes'] = Input::in_post('aniversariantes');
if ($this->campanhas->editar($campos, $horas, $id_campanha)) {
Session::flash('success', "Campanha Cadastrada com Sucesso!");
} else {
Session::flash('error', "Erro ao tentar Cadastrar uma Campanha. Por favo, entre em contato com o Administrador do Sistema.");
}
# Se vier da página editar, volta retorna para ela mesma
if (Input::in_get('pagina_editar') == true) {
return Redirect::to('campanhas.pagina_editar', "id_campanha={$id_campanha}");
}
return Redirect::to('campanhas.pagina_cadastrar', "id_campanha={$id_campanha}");
}
# Recebe um Post via Ajax para validar a Data de Inicio de apresentação da Campanha
public function valida_data_inicio()
{
$data_inicio = Input::in_post('data_inicio');
$id_campanha = Input::in_post('id_campanha');
# Página que enviou o post
$emissor = Input::in_post('pagina_editar');
if ($this->campanhas->checar_data_inicio($data_inicio, $id_campanha, $emissor)) {
echo "true";
} else {
echo "false";
}
}
# Recebe um Post via Ajax para validar a Data de Término de finalização da Campanha
public function valida_data_termino()
{
$data_termino = Input::in_post('data_termino');
$id_campanha = Input::in_post('id_campanha');
# Página que enviou o post
$emissor = Input::in_post('pagina_editar');
if ($this->campanhas->checar_data_inicio($data_termino, $id_campanha, $emissor)) {
echo "true";
} else {
echo "false";
}
}
public function pagina_campanhas_desativadas()
{
$this->layout_pricipal;
$campanhas = $this->campanhas->listar_campanhas_desativadas();
return $this->view->make('campanhas.listar_campanhas_desativadas', compact('campanhas'));
}
# Realiza a desativação de uma Campanha
public function desativar()
{
$id_campanha = Input::in_get('id_campanha');
$campo['status'] = 0;
if ($this->campanhas->update($campo, $id_campanha)) {
Session::flash('success',"Campanha Desativada com Sucesso.");
} else {
Session::flash('error',"Erro ao tentar Desativar uma Campanha. Por favo, entre em contato com o Administrador do Sistema..");
}
return Redirect::back();
}
# Realiza a desativação de uma Campanha
public function reativar()
{
$id_campanha = Input::in_get('id_campanha');
$campo['status'] = 1;
if ($this->campanhas->update($campo, $id_campanha)) {
Session::flash('success',"Campanha Reativada com Sucesso.");
} else {
Session::flash('error',"Erro ao tentar Reativar uma Campanha. Por favor, entre em contato com o Administrador do Sistema..");
}
return Redirect::to('campanhas.pagina_lista_campanhas');
}
# Realiza a deleção de uma Campanha
public function deletar()
{
$id_campanha = Input::in_get('id_campanha');
if ($this->campanhas->deletar($id_campanha)) {
Session::flash('success',"Campanha Deletada com Sucesso.");
} else {
Session::flash('error',"Erro ao tentar Deletar uma Campanha. Por favor, entre em contato com o Administrador do Sistema..");
}
return Redirect::back();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment