バージョン : FuelPHP 1.7.1
FuelPHP では oil でページ作ると
public function action_index() { $data["subnav"] = array('index'=> 'active' ); $this->template->title = 'Test » Index'; $this->template->content = View::forge('index', $data); }
みたいに Controller の方で $data["subnav"]
のような変数に
array(<アクションを識別するための ID> => <選択時に使いたい css クラス名>)
を突っ込んで、View で
<li class='<?php echo Arr::get($subnav, "index" ); ?>'><?php echo Html::anchor('index','いんでっくすぺーじ');?></li >
みたいにして参照して今いるページとマッチするリンクだけ css のクラス(この場合は .active
)が適用されるようなコードが作られる。
で、ヘッダーとかサイドバーがあるサイトで今いるページがわかるようにスタイルを変えたいときに使おうと思ってテンプレートの方で Arr::get($subnav, "index" );
すると $subnav
なんて知らないよって怒られる。
FuelPHP Forums | public Template and passing $data
上記にあるように、
$this->template->subnav = array('index' => 'active');
のようにして渡してやってテンプレートからは参照できるようにする必要がある。