1

PyroCMSのカスタムモジュールを作成していますが、現在のクラスの適用に関してセクションメニューを機能させたいと考えています。変更したくないCMSphpは次のようになります。

<li class="<?php if ($name === $active_section) echo 'current' ?>">

/ admin / courses /を表示しているとき、これは正しく、最初のナビゲーション要素にはクラスcurrentがあります。

ここに画像の説明を入力してください

$ nameは、details.phpで設定されている言語ファイルから取得されます。$ active_sectionはビューから取得され、次のようになります。

$ this-> _ ci_cached_vars ['active_section']

ただし、/ admin / courses / chapters /を表示すると、「courses」はシステムによって現在のセクションであると判断されるため、ナビゲーションが混乱します。

必要なのは、コントローラーのどの関数(インデックス、チャプター、またはページ)が使用されているかに応じて、ビューの$active_sessionの値を変更する方法です。

各コントローラー関数で$this->_ ci_cached_vars ['active_section']の値を変更しようとしましたが、機能しません。何か案は?

私が完全に見逃している基本的なものがあると確信しています。

4

1 に答える 1

1

とった。1つのコントローラーで複数のメソッドを使用しており、'protected $ section ='courses'; indexメソッドの前に発生するlineは、すべてのセクションを設定していました。別のメソッド内で2回目に設定することはできませんでしたが、メソッド内でセクションを定義する方法があります。

$ this-> template-> active_section='セクション'; 次のように私の方法を開始すると、私が望むものが得られました。

public function chapters(){

        //Set active section
        $this->template->active_section = 'chapters';
 ...

}
于 2012-07-11T21:01:33.770 に答える