2011年8月25日木曜日

CakePHP 携帯などでviewとlayoutを切り替える

アクセス元の端末によって表示ファイルを変更したい場合、該当するコントローラファイルで、render()を利用して変更する。

■viewファイルを変更する

$this->render('view');

viewには表示させたいテンプレートファイル名を指定。拡張子は不要。

例)index_mob.ctpを表示させたい場合
$this->render('index_mob');

■layoutファイルを変更する
$this->layoutに指定する。

例)レイアウトファイルをlogin.ctpで表示させたい場合

$this->layout = 'login';



■view、layoutファイルを両方変更する
layoutファイル名をrender()の第二引数にファイル名を指定する。

$this->render('view','layout');

viewには表示させたいテンプレートファイル名、layoutには表示させたいレイアウトファイル名を指定。拡張子は不要。

例)index_mob.ctpをdefault_mob.cptで表示させたい場合
$this->render('index_mob','default_mob');

携帯用、PC用など、常に決まったレイアウトファイルを利用する場合は、毎回記述するのは面倒なので、別の方法で実装するほうが良さげ。
実装したら追記。

0 件のコメント:

コメントを投稿