0

我想在我所有网页的第一个运行此代码,

我正在使用代码点火器

代码是:

if(!$this->session->userdata('lang')):
$this->session->set_userdata('lang','ar');
endif;

怎么做?

4

1 回答 1

1

如果您还没有,不妨看看 CodeIgniter 的语言类


您可以扩展本机CI_Controller类。扩展此类允许您添加附加功能,同时保留本机核心类的原始功能。

为了让代码首先在所有页面上运行,您可以将代码添加到新创建的子类的构造函数中 - 如果您使用新的子类扩展控制器,那么当控制器中的任何函数( s) 被调用。去做这个:

创建一个子类

MY_Controller.php在项目目录中创建一个名为的文件application/core/。这个新类需要扩展CI_Controller和父构造函数。该类应如下所示:

<?php    

class MY_Controller extends CI_Controller {

    public function __construct()
    {
        parent::__construct();  //make sure you extend the parent constructor

        //Your code:
        if( ! $this->session->userdata('lang') )
            $this->session->set_userdata('lang','ar');
    }

}

确保类前缀正确

如果您已用作MY_新类的前缀,那么您不需要在这里做任何事情,但无论如何知道它是有用的。

您还需要确保在application/config/config.php文件中正确设置了子类前缀。

$config['subclass_prefix'] = 'MY_';

此前缀必须与您创建的新类的前缀匹配。默认情况下它是MY_,但您可以将其更改为您想要的,只要它们对应 - FOO_, BAR_, WHATEVER_... 例外是CI_,它是为 CodeIgniter 的本机库保留的。

使用新的子类扩展所有应用程序的控制器

您在application/controllers/is(/are) 中的控制器可能正在扩展CI_Controller. 要使用新创建的子类,您的控制器应该扩展MY_Controller父构造函数。

class Welcome extends MY_Controller {

    function __construct()
    {
        parent::__construct();
    } 

    //More functions...
}
于 2013-03-30T15:44:30.267 回答