ヘッダテンプレートにタイトルの変数を渡す

テンプレートの大半が同じヘッダ及びフッタを使用する場合は、それらを単体のテンプレートに分割し、それらをインクルードするのが普通です。しかしどのページから呼び出されたかによって、そのヘッダに異なるタイトルを持たせる必要があるとすればどうなるでしょうか?インクルードされる際にタイトルをヘッダに渡す事ができます。

例 17-3. ヘッダテンプレートにタイトルの変数を渡す

mainpage.tpl
------------

{include file="header.tpl" title="Main Page"}
{* ここにテンプレートの本体を記述する *}
{include file="footer.tpl"}


archives.tpl
------------

{config_load file="archive_page.conf"}
{include file="header.tpl" title=#archivePageTitle#}
{* ここにテンプレートの本体を記述する *}
{include file="footer.tpl"}


header.tpl
----------
<HTML>
<HEAD>
<TITLE>{$title|default:"BC News"}</TITLE>
</HEAD>
<BODY>


footer.tpl
----------
</BODY>
</HTML>

"mainpage"ページが呼び出される時、タイトル"Main Page"はheader.tplに渡されタイトルとして使用されます。"archives"ページが呼び出される時、タイトルは"Archives"になります。"archives"の例で、ハードコーディングされた変数の代わりにarchives_page.confファイルから変数を取得している事に注意して下さい。また、$title 変数がセットされていない場合は変数の修正子defaultを使って"BC News"が出力される事に注意して下さい。