Muito obrigados amigos, esse foi o meu primeiro post e não esperava ter
recebido uma tão calorosa recepção.
Já tinha analisado essa solução do My_controller nos post antigos do grupo
e se não me engano foi o próprio Nando que postou.
Achei que seria melhor fazer tudo pelo hook, pois programava em java e nele
tem os Filter que funcionam mais ou menos como um hook, mas de forma
melhorada. Contudo vocês me convenceram! Vou usar um Controller próprio.
Fiz dessa forma:
// CONTROLE PROPRIO
*class MyController extends CI_Controller {
function __construct() {
parent::__construct();
validador();
}
function validador(){
}
} *
// IMPLEMENTAÇÃO
*class Usuario extends MyController {
function __construct() {
parent::__construct();
$this->grud_helper = new Grud_helper("usuario");
}
}*
Mas ele não carrega automaticamente esse controller e retorna esse erro:
Fatal error: Class 'MyController' not found in
C:\wamp\www\CodeIgniter\application\controllers\usuario.php on line 3
Para carregar automaticamente o meu controller como faço? Coloco ele no
autoload.php como library?
Att,
*Álvaro Vilobaldo Rios da Silva*
mail to: [email protected] <[email protected]>
*Analyst Programmer*
*São Paulo and Region, Brazil*
Em 28 de fevereiro de 2012 17:06, Rafael V. de Oliveira <
[email protected]> escreveu:
> Muito boa a tua solução (Y).
>
> A respeito do $this->uri->uri_string(), bem lembrado Nando, porém depende
> do caso. Até onde eu me lembro, a função não retorna o base_url.
> Mas não estou falando com certeza, minha cabeça dói e vou vazar daqui.
>
> Abraços ;)
>
> Em 28/02/2012, às 19:35, Nando Araujo escreveu:
>
> > Opa, muito bem explicado Rafael, é exatamente assim que eu fiz também. :)
> >
> > Só uma dica: a "$pagina_atual = base_url() . $this->uri->uri_string();"
> > pode usar diretamente a função "uri_string()"!
> >
> > Gostei do jeito que vc verifica o loop infinito; eu fiz assim:
> > http://pastebin.com/nxziwS0u
> >
> > Em 28 de fevereiro de 2012 16:15, Rafael V. de Oliveira <
> > [email protected]> escreveu:
> >
> >> Existem diversas formas, como hooks (o teu problema é quase certo a
> falta
> >> de carregar o helper), pelo construtor da classe, etc…
> >>
> >> A solução mais elegante que encontrei foi essa:
> >>
> http://philsturgeon.co.uk/blog/2010/02/CodeIgniter-base-Classes-Keeping-it-DRY
> >>
> >> Resumindo em miúdos, ao invés de todos os controllers herdarem o
> >> MY_Controller, eles podem ou herdar o Admin_controller ou
> Public_controller
> >> (ambos os nomes podem ser alterados). E estas duas classes (podem ser
> mais)
> >> herdam o MY_Controller.
> >>
> >> No Admin_controller eu coloquei assim (no constructor):
> >>
> >> //Páginas que não necessitam estar logado
> >> $paginas_login = array('admin/login', 'admin/logout');
> >> //Dê uma olhada no user_guide
> >> $pagina_atual = base_url() . $this->uri->uri_string();
> >>
> >> //Evita o loop eterno
> >> if ( ! in_array($pagina_atual, $paginas_login) )
> >> {
> >> if ( ! $this->session->userdata('login_id') )
> >> {
> >> //Atenção ao $paginas_login
> >> redirect('admin/login');
> >> }
> >> }
> >>
> >> É por isso que quando vejo o pessoal reclamando que o CI não tem
> controle
> >> de acesso, eu dou risada. É tão simples implementar que a melhor opção é
> >> deixar a critério do desenvolvedor.
> >>
> >> É só prestar atenção a nome de sessions e o que está no autoload ou não.
> >> Como o helper url eu utilizo quase sempre, ele está no autoload.
> >>
> >> Em 28/02/2012, às 16:51, Nino Baldo escreveu:
> >>
> >>> Ola pessoal,
> >>>
> >>> Gostaria de saber como validar se o usuário está logado ou não em todas
> >> as
> >>> telas e caso não esteja direcionar para o controller de login?
> >>>
> >>> Até agora já fiz um hook de "pre_controller", mas não consigo
> >> redirecionar,
> >>> pois quando uso o "redirect('pagina')" ele me exibe esse erro: Fatal
> >> error:
> >>> Call to undefined function redirect()
> >>>
> >>>
> >>> Att,
> >>>
> >>> *Álvaro Vilobaldo Rios da Silva*
> >>>
> >>> mail to: [email protected] <[email protected]>
> >>> *Analyst Programmer*
> >>>
> >>> *São Paulo and Region, Brazil*
> >>> _______________________________________________
> >>> [email protected]
> >>> http://www.codeigniter.com.br
> >>>
> http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> >>>
> >>> ---------------------------
> >>> Oportunidade de negócio
> >>> http://www.franquiasargohost.net
> >>> ---------------------------
> >>
> >> _______________________________________________
> >> [email protected]
> >> http://www.codeigniter.com.br
> >>
> http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> >>
> >> ---------------------------
> >> Oportunidade de negócio
> >> http://www.franquiasargohost.net
> >> ---------------------------
> >>
> > _______________________________________________
> > [email protected]
> > http://www.codeigniter.com.br
> > http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
> >
> > ---------------------------
> > Oportunidade de negócio
> > http://www.franquiasargohost.net
> > ---------------------------
>
>
> _______________________________________________
> [email protected]
> http://www.codeigniter.com.br
> http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
> ---------------------------
> Oportunidade de negócio
> http://www.franquiasargohost.net
> ---------------------------
>
_______________________________________________
[email protected]
http://www.codeigniter.com.br
http://mail.codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
---------------------------
Oportunidade de negócio
http://www.franquiasargohost.net
---------------------------