muda MyController p/ MY_Controller

Em 1 de março de 2012 09:45, Nino Baldo <[email protected]> escreveu:

> 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
> ---------------------------
>
_______________________________________________
[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
---------------------------

Responder a