我想首先在我的所有网页上运行此代码,
我正在使用codeigniter
代码为:
if(!$this->session->userdata('lang')):
$this->session->set_userdata('lang','ar');
endif;
怎么做?
答案 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