2013-03-30 202 views
0

我想運行在第一個我的所有網頁的驗證碼,默認語言笨

我用笨

代碼:

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

該怎麼做?

回答

1

如果你還沒有,可能值得看看CodeIgniter的language class


您可以擴展本機CI_Controller類。擴展此類允許您添加額外的功能,而原生核心類的原始功能仍然存在。

要在所有頁面上首先運行的代碼,您可以將代碼添加到新創建的子類的構造函數中 - 如果使用新的子類擴展控制器,則此代碼將在任何函數在你的控制器中被調用。要做到這一點:

創建一個子類

創建一個在application/core/目錄中的項目命名爲MY_Controller.php文件。這個新類需要擴展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/新的子類

你的控制器(s)爲(/是)可能延長CI_Controller。要使用新創建的子類,您的控制器應該擴展MY_Controller和父構造函數。

class Welcome extends MY_Controller { 

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

    //More functions... 
} 
+0

非常感謝你,它工作的很好。最好的問候 –

+0

沒問題,我很高興它的工作!如果您發現答案有用,那麼也許您可以考慮將其標記爲正確/有效? http://stackoverflow.com/faq#howtoask – jleft