Muito obrigado pessoal, funcionou muito bem!

Só tive que colocar o meu MY_Controller no application/core e adicionar
essa função no config.php:

*function __autoload($class) {
    if (strpos($class, 'CI_') !== 0) {
        @include_once( APPPATH . 'core/' . $class . EXT );
    }
}
*
Exatamente como explica o site passado:
http://philsturgeon.co.uk/blog/2010/02/CodeIgniter-base-Classes-Keeping-it-DRY

Tudo funcionou, mas surgiu uma duvida. Se minha classe tem o nome
MY_Controller, pq o autoload funciona com CI_? Sou novo em php então isso
me soou meio estranho.

Att,

*Álvaro Vilobaldo Rios da Silva*

mail to: [email protected] <[email protected]>
*Analyst Programmer*

*São Paulo and Region, Brazil*




Em 1 de março de 2012 10:09, Jairo <[email protected]> escreveu:

> Valeu Álvaro,
>
> Seguinte, coloquei a minha em /application/core/MY_Controller.php .
>
> class MY_Controller extends CI_Controller {
> }
>
> Atente para o nome MY_Controller ( o case, o underscore ) no arquivo e
> no nome da classe, parece que tem que seguir o padrão. Acho que faltou
> um "underscore" aí.
>
> --
> Abs,
>
> Jairo
> Sao Paulo / SP - Brasil
>
>
> On Thu, 2012-03-01 at 09:45 -0300, Nino Baldo wrote:
> > 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
> ---------------------------
>
_______________________________________________
[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