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

レイアウトを作ろう! (3/4)

作成:2011-11-10 08:01
更新:2011-11-10 08:01

■レイアウトに必要な出力内容について

作成したレイアウトファイルでは、HTMLのタグだけでなく、PHPを利用して各種の出力がされています。これらの多くは、レイアウト用にCakePHPに用意されている機能だったりします。ここで出力されている内容について整理しましょう。

●ヘッダー関係

echo $this->Html->charset();
キャラクタセットの出力です。最初にこれを出力することで、ページのキャラクタセットを設定します。これはutf-8に設定されています。
echo $title_for_layout;
これは前に登場しましたね。タイトルの出力です。レイアウトを使用する場合、<title>によるタイトルは、この$title_for_layout変数を使って設定します。
echo $this->Html->meta('icon');
ページのアイコン(favicon)情報を出力します。これは必須というわけではありませんが、特に理由がなければ用意しておきましょう。表示するアイコンは、CakePHPフォルダを開いたところにある「favicon.ico」ファイルです。これを用意しておくことで、ページに自動的に設定されるわけです。
echo $this->Html->css('sample');
スタイルシートの<link>タグを自動出力するものです。ここでは「sample」と指定していますが、これで「webroot」の「css」内にあるsample.cssが読み込まれます。
echo $scripts_for_layout;
レイアウト用のスクリプトを出力します。この$scripts_for_layout変数に必要なスクリプトタグのテキストなどを設定しておきます。

●ボディ関係

echo $header_for_layout;
レイアウト用のヘッダーを保管するものです。といっても、実はこれ、今回のSampleレイアウトで独自につけたもので、CakePHPの機能ではありません。
echo $this->Session->flash();
これは「セッション・ヘルパー」というものを使った文です。セッションでの出力などがある場合、ここで書き出されます。ここでは特に使っていません。
echo $content_for_layout;
コンテンツを出力します。この$content_for_layoutは、CakePHPに標準で用意されている変数です。
echo $footer_for_layout;
フッターを出力するためのものです。これも実はCakePHPにある機能ではなくて、Sampleレイアウトに独自に用意したものです。

――ここに上げた要素の出力をうまくレイアウト内に配置して、レイアウトは完成します。中には省略してもいいものもありますが、echo $content_for_layout;などは省略すると肝心のコンテンツが表示されなくなりますから必ず用意しましょう。

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

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

※関連コンテンツ

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