Bom dia pessoal.
Estou com a seguinte dificuldade.
Quero executar uma funcao em qualquer controller do sistema, essa funcao
deve ser repassada para todas
as classe filhas que estenderem a classe CI_Controller
ex:
class Produtos extends CI_Controller {
function __construct()
{
parent::__construct();
}
}
Ou seja, essa classe devera herdar um elemento adicional na funcao
__construct vindo da modificacao
que pretendo fazer na classe CI_Controller original. Que pode ser por
exemplo uma verificacao se o usuario
esta logado via sessions.
Pois bem, a classe CI_Lang de manipulacao de idiomas eu consegui extender
tranquilamente inserindo uma
funcao extra na funcao principal quando criei o arquivo MY_Lang na pasta
application/core.
A nova funcao que inseri no arquivo MY_Lang.php e carregada automaticamente
quando chamo $this->lang->nova_funcao();
Preciso fazer com que toda nova classe que extenda a classe CI_Controller
herde a funcao abaixo no __construct por
padrao alguem sabe como posso fazer isso?
parent::__construct();
*$this->lang->change($this->session->userdata('language'));*
*
*
*
---------------------------------------------------------------------------------------------------------------------
*
Tentei de todas as maneiras e nao consegui (sem alterar o arquivo
CI_Controler.php e adicionar a funcao no __Construct)
fazer mesmo processo que fiz com a classe CI_Lang na classe CI_Controller.
A funcao nao carrega de forma alguma. Ja se eu altero diretamente o arquivo
CI_Controller.php (pasta system/core)
funciona perfeitamente.
veja como fica o arquivo da pasta system modificado que funciona 100%:
*
class CI_Controller {
private static $instance;
/**
* Constructor
*/
public function __construct()
{
self::$instance =& $this;
// Assign all the class objects that were instantiated by the
// bootstrap file (CodeIgniter.php) to local class variables
// so that CI can run as one big super object.
foreach (is_loaded() as $var => $class)
{
$this->$var =& load_class($class);
}
$this->load =& load_class('Loader', 'core');
$this->load->_base_classes =& is_loaded();
$this->load->_ci_autoloader();
log_message('debug', "Controller Class Initialized");
// FIXME: arrumar maneira de extender o construct de todos os controles na
application de forma nativa para nao precisar alterar o system/core
$this->lang->change($this->session->userdata('language'));
}
*
*
*
*Pablo Augusto
SEO | SEM | Marketing Digital
*
*Me siga no Twitter:* @pabloaugusto <http://twitter.com/pabloaugusto>
*Artigos sobre Otimização de sites <http://webtags.com.br/seo>, Marteking
Digital e Mídias Sociais:* WebTags <http://webtags.com.br>
MSN: [email protected]
SKYPE: [email protected]
EMAIL: [email protected]
[image: Linkedin] <http://linkedin.com/in/pabloaugusto> [image:
Twitter]<http://twitter.com/pabloaugusto>
[image: Facebook] <http://facebook.com/pabloaugusto> [image:
Flickr]<http://flickr.com/photos/pabloaugusto> [image:
Youtube] <http://youtube.com/pabloaugustoo> [image:
FormSpring]<http://formspring.me/opabloaugusto> [image:
LastFM] <http://lastfm.com.br/user/pabloaugustoo> [image:
DeviantART]<http://deviantart.com/pabloaugustoo> [image:
Tumblr] <http://pabloaugusto.tumblr.com/> [image:
Vimeo]<http://vimeo.com/pabloaugusto> [image:
del.icio.us] <http://del.icio.us/pabloaugusto> [image:
Slideshare]<http://slideshare.net/pabloaugusto> [image:
Friendfeed] <http://friendfeed.com/pabloaugusto>
_______________________________________________
[email protected]
http://www.codeigniter.com.br
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
---------------------------
Oportunidade de negócio
http://www.franquiasargohost.net
---------------------------