バージョンアップにより、スキャフォールド(yiic)で生成される CRUD のビューに係る部分で、それまで1カラム表示だったのが2カラム表示へ変更された。それに合わせて、サブメニューが右側に表示されるようになった。
実は以前作った CMS で、サブメニューを今回の 1.1.1 のように右側に表示するようにしたところ、結構使い難かった。そのためそれ以降は、サブメニューはメインメニューの下側へ表示するようにしている。
ということで、yiic で吐き出されたソースを変更して 1.1.0 で表示していたようにしたいと思う。
編集は以下の3点だ。
3番目の CSS の指定で、main.css から「action」クラスとそれに関する「li,a,a:hover」などの定義が削除されてしまっていた。そこで、1.1.0 の main.css からその部分をコピーした。
1番目だが、yiic はコントローラのプロパティに $layout=’column2′ を書き出してくる。コントローラは components/Controller.php から派生するようだが、ここにデフォルトレイアウトの指定で「column1」を設定している。書き出すよりこちらを「column2」にした方が、良かったような気がするのだが。
最後にビューの変更だ。以前のサブメニューは、ulタグに actions クラス指定をして、直接メニューを html で記述していた。1.1.1 ではコントローラのメンバに $menu があり、そこにメニューのパラメータを配列指定している。CMenu を利用することでそれをそのまま使える。
$this->menu=array( array('label'=>'List user', 'url'=>array('index')), array('label'=>'Create user', 'url'=>array('create')), ); $this->widget('zii.widgets.CMenu', array( 'htmlOptions'=>array( 'class'=>'actions', ), 'items'=>$this->menu, ));
ulタグに actions クラス指定を忘れないように。
(yii-1.1.1.r1907)