I love iPhone, Android, Cocos2d-x
Posts tagged app
CakePHP のエレメント
2違うレイアウトでも同じデザインの部品を使用することがありますが、その場合に使用するといいのがエレメントです。
エレメントを使用するには
/app/views/elements/
の中に拡張子「.thtml」をつけたファイルを作成します。
エレメントを使用するレイアウト内で
<?php echo $this->renderElement('hoge'); ?>
と書くとエレメントが表示されます。
例えば、ログインフォーム用のエレメントを
/app/views/elements/login.thtml
と作成した場合は
<?php echo $this->renderElement('login'); ?>
と書きます。
また、エレメント内ではそのままではデータにアクセスできないため、
エレメント内でデータを参照したい場合はエレメンにデータを渡さないといけません。
<?php echo $this->renderElement('login', array("user" => $user)); ?>
と、データ配列を渡してエレメントを呼ぶことによりエレメント内で
<?php echo $user; ?>
のようにアクセスできます。
下記の記事が参考になります。
CakePHP の view の elements がアクセスできる変数
cakePHPのマニュアル 8.1.2 エレメント
CakePHP でレイアウトを変更する
1レイアウトを変更するには
/app/views/layouts/default.thtml
を変更すればOK。
コントローラ毎などにレイアウトを変更したいときは
/app/views/layouts/hoge.thtml
などとレイアウトを作成して、コントローラで
var $layout = "hoge.thtml";
とレイアウトを指定する。
このレイアウトの中でタイトルタグを
<title><?php echo $title_for_layout?></title>
としていれば、
$this->pageTitle('このページのタイトル');
とコントローラで指定すれば、アクション毎にタイトルを変更できる。