Opa Nino, sinta-se em casa hehehehehe Pra matar tuas dúvidas reafirmo o que o Rafael passou, é interessante a leitura do http://philsturgeon.co.uk/blog/2010/02/CodeIgniter-base-Classes-Keeping-it-DRY e recomendo essa aqui tb http://codeigniter.com/user_guide/general/styleguide.html pois tem alguns detalhezinhos q fazem toda a diferença, como por exemplo no nome das classes se forem My_ ou MY_ ou no nome dos arquivos (dessas classes) se for My_ ou MY_ (principalmente pq o ambiente linux e windows não reconhecem da msm forma e dai se teu local é win e o server produção é linux pode dar alguns erros q inicialmente parecerão "espíritas" hehehehehe) e por aí vai! :D
Boa sorte e seja bem-vindo! Em 1 de março de 2012 09:54, Jonatan Froes <[email protected]>escreveu: > 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 > --------------------------- > _______________________________________________ [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 ---------------------------

