ヘッダテンプレートにタイトルの変数を渡す (ヒント & 裏ワザ) - PHPプロ!マニュアル

Smartyマニュアル

ヒント & 裏ワザ - ヘッダテンプレートにタイトルの変数を渡す

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

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

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

mainpage.tpl - メインページを描画する際に、 "Main Page" というタイトルを header.tpl に私、それをタイトルとして使用します。

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

archives.tpl - アーカイブページを描画する際には、 タイトルは "Archives" となります。 この例では、ハードコーディングされた変数ではなく archives_page.conf から変数を取得していることに注意しましょう。

{config_load file='archive_page.conf'}

{include file='header.tpl' title=#archivePageTitle#}
{* ここにテンプレートの本体を記述します *}
{include file='footer.tpl'}

header.tpl - $title 変数が設定されていない場合に、 "Smarty News" と表示します。これは default 修飾子を使用して実現しています。

<html>
<head>
<title>{$title|default:'Smarty News'}</title>
</head>
<body>

footer.tpl

</body>
</html>


Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)

Q&A掲示板 新着情報