作成日:2006/08/07
4B.2 テンプレートの作成
例題(ss-tpl)のテンプレート(テーマファイル)に従って、テンプレートファイルの作成方法を説明します。 まず、ファイル名ですが、テンプレートファイルの拡張子は特に規定がありません。.tpl や .html 、なんでも可です。
例題のテンプレートファイル名は
theme.htmlです。theme.htmlの完全なリストは章末の「付録 ソースコード」を参照して下さい。
4B.2.1 テンプレートの基本構文
<{* Smarty Sample Template *}>
<{config_load file="meta.conf"}>
<!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="<{$site_lang}>"
lang="<{$site_lang}>">
- ■コメント
- <{* comment *}>
- ■テンプレート変数
- <{ $variable }>, <{ #variable# }>
- ■テンプレート関数
- <{ func parameter1=value1 parameter2=value2 ・・・ }>
Smartyは独自の言語を持つテンプレートエンジンです。 Smartyの言語はHTMLなどのマークアップ言語に似た形式で表記されるので、テンプレートタグと呼ばれます。 テンプレートタグは、デリミタによって囲まれ、デフォルトのデリミタはカーリブラケット { } です。 上の例では、デリミタを <{ }> に変更していますが、これはテンプレート内のJavaScriptやCSSに対する配慮です。
JavaScript や CSS ではブロッグを構成するためにカーリブラケット { } が使われます。
これはSmartyのデリミタと競合しエラー発生の原因になります。
エラーを回避するには、Smartyのデリミタを変更するが、
テンプレート関数(ldelim/rdelim)を使用してデリミタを表示する必要があります。
上例の <{* Smarty Sample Template *}> はSmartyのコメントです。 config_load はテンプレート関数と呼ばれ、$site_lang はテンプレート変数と呼ばれます。 テンプレート変数は、 $ で始まるものと、 # で囲まれたものの2種類があります (以下の「テンプレート変数」を参照)。 そして、これら以外のものはテンプレート関数として扱われます。
このようにSmartyのもつテンプレート言語は2つの基本的要素(テンプレート変数とテンプレート関数)によって成り立っています。
