libro
www.tuyano.com
初心者のためのCakePHP 1.3 プログラミング入門

ビューを更に考える (2/7)

作成:2010-02-17 15:55
更新:2010-05-10 19:12

■レイアウトを作成する

では、実際にレイアウトを作成してみましょう。レイアウト用のテンプレートは、「views」内にある「layouts」フォルダの中に配置します。アクション用に作成したテンプレートと同様、.ctpファイルとして用意します。

では、「layouts」内に、新たに「sample.ctp」というファイルを作成しましょう。そして、以下に挙げたようにソースコードを記述してください。

ここでは、いくつかの<?php ?>タグを埋め込んで、値を出力するようにしてあります。整理すると以下のようになります。

$page_title――ページタイトルです。
$content_header――コンテンツのヘッダー部分です。
$content_for_layout――コンテンツの内容です。
$content_footer――コンテンツのフッター部分です。

これらの中で注意素べきは、「$content_for_layout」です。これは、CakePHPによって用意される変数です。レイアウトを使用すると、CakePHPはアクションに対応するテンプレートを読み込み、レンダリングして、その結果(出力される内容)をこの$content_for_layoutという変数に納めるようになっているのです。ですから、レイアウト・テンプレートを作成する場合は、必ずこの変数でコンテンツを表示させるように設計します。

もう1つのポイントは、ヘッダー部分にある「echo $html->css("cake.sample");」というものです。「$html->css」というのは、引数に指定したスタイルシートを読み込むためのタグを生成します。ここでは、「cake.sample」という名前のスタイルシートを読み込むようにしてあるわけです。このレイアウト・テンプレートで使用するスタイルシートを、ここに用意しておけば、それが読み込まれるようになります。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> 
	<head> 
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
		<title><?php echo $page_title; ?></title>
		<?php echo $html->css("cake.sample"); ?>
	</head>
	<body>
	<div id="header"><?php echo $content_header; ?></div>
	<div id="content">
		<?php echo $content_for_layout; ?><br /><br />
	</div>
	<div id="footer"><?php echo $content_footer; ?></div>
	</body>
</html>
※関連コンテンツ

「初心者のためのCakePHP 1.3 プログラミング入門」に戻る