すべての Web ページの最初でこのコードを実行したいのですが、
私はコードイグナイターを使用しています
コードは次のとおりです。
if(!$this->session->userdata('lang')):
$this->session->set_userdata('lang','ar');
endif;
どうやってするか?
すべての Web ページの最初でこのコードを実行したいのですが、
私はコードイグナイターを使用しています
コードは次のとおりです。
if(!$this->session->userdata('lang')):
$this->session->set_userdata('lang','ar');
endif;
どうやってするか?
まだ読んでいない場合は、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 のネイティブ ライブラリ用に予約されている です。
新しいサブクラスですべてのアプリケーションのコントローラーを拡張します
is(/are)のコントローラーapplication/controllers/
はおそらく拡張してCI_Controller
います。新しく作成されたサブクラスを利用するには、コントローラーを拡張MY_Controller
して親コンストラクターを作成する必要があります。
class Welcome extends MY_Controller {
function __construct()
{
parent::__construct();
}
//More functions...
}