CakePHP Note (v1.3) > ビュー > レイアウト
レイアウト
レイアウトはビューの大枠の事でアプリケーション内で共通して使用されるヘッダやフッタ、cssファイルなどに関する記述がする事が出来ます。レイアウトの中に各アクションのビューの内容が差し込まれて出力されます。
レイアウト内容
標準で使用されるレイアウトは以下のような内容になっています。各アクションで使用するビューの内容は$content_for_layoutの部分に差し込まれて出力されます。dafault.ctpという名前のファイルが使用されます。
<html> <head> <?php echo $this->Html->charset(); ?> <title> <?php __('CakePHP: the rapid development php framework:'); ?> <?php echo $title_for_layout; ?> </title> <?php echo $this->Html->meta('icon'); echo $this->Html->css('cake.generic'); echo $scripts_for_layout; ?> </head> <body> <div id="container"> <div id="header">ヘッダー</div> <div id="content"> <?php echo $this->Session->flash(); ?> <?php echo $content_for_layout; ?> </div> <div id="footer">フッター</div> </div> </body> </html>
ページタイトルの変更
ページタイトルは、$title_for_layoutの内容を表示します。ページタイトルを変更するにはコントローラ内のアクションで変更するか、各アクションのビューで変更します。(CakePHP 1.3からは$pageTitleは使用されなくなりました)
コントローラで変更する例
class PostsController extends AppController { function view($id) { $this->set('title_for_layout', 'Custom Title'); } }
アクションのビュー内で変更する例
$this->set('title_for_layout', 'Custom Title');
独自のレイアウトを作成
独自のレイアウトはapp/view/layouts/以下に作成します。標準のレイアウトのファイル(cake/libs/viw/layouts/default.ctp)からコピーしてきて編集しても良いでしょう。レイアウトを目的に応じて複数作成しておき、使用したいレイアウトをコントローラ内で切り替えて使用する事も出来ます。
レイアウトを切り替える例
class PostsController extends AppController { function view($id) { $this->layout('special_layout'); } }