默认语言codeigniter

时间:2013-03-30 14:40:48

标签: codeigniter

我想首先在我的所有网页上运行此代码,

我正在使用codeigniter

代码为:

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

怎么做?

1 个答案:

答案 0 :(得分:1)

如果您还没有,可能值得查看CodeIgniter的language class


您可以扩展本机CI_Controller类。扩展此类允许您添加其他功能,而本机核心类的原始功能仍然存在。

对于在所有页面上首先运行的代码,您可以将代码添加到新创建的子类的构造函数中 - 如果使用新的子类扩展控制器,则此代码将在任何函数运行时运行你的控制器被调用。要做到这一点:

创建子类

在项目的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_ ...例外情况为{{1这是为CodeIgniter的本地库保留的。

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

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

MY_Controller