このマニュアルはSmartyのものです。セキュリティなどの問題でRCMSでは利用できないものもありますので、ご注意ください。
{include}{include}
{include} タグを使用して、
現在のテンプレートに他のテンプレートをインクルードします。
現在のテンプレートにて利用可能なあらゆる変数は、
インクルードされたテンプレートでも同じく利用可能です。
{include} タグには、テンプレートリソースのパスを含んだ
file 属性を必ず指定する必要があります。
{include} の出力をブラウザに表示する代わりに変数に格納したい場合は、
オプションの assign 属性にその変数名を定義します。
{assign}
と同等です。
インクルードされたテンプレートに変数を渡すには、
attributes
を使用します。インクルードされたテンプレートに明示的に渡された変数は、
インクルードされたファイルのスコープでのみ有効となります。
そのテンプレートに同じ名前の変数が存在する場合は、
渡された変数がそれをオーバーライドします。
全ての割り当て変数の値は、インクルードされたテンプレートのスコープが閉じた後に元に戻ります。
これは、インクルードされたテンプレート内で全ての変数を使用可能であるということです。
しかし、インクルードされたテンプレート内での変数の変更は
{include}
の後でインクルードしている側のテンプレート内では見ることはできません。
$template_dir
ディレクトリ外にあるファイルを {include} するには、
テンプレートリソース を指定します。
例 7-17. シンプルな {include} の例 <html>
<head>
<title>{$title}</title>
</head>
<body>
{include file='page_header.tpl'}
{* ここにテンプレートの本体を記述します。変数 $tpl_name
はたとえば 'contact.tpl' などに置き換えられます。
*}
{include file="$tpl_name.tpl"}
{include file='page_footer.tpl'}
</body>
</html> |
|
例 7-18. {include} に変数を渡す {include file='links.tpl' title='Newest links' links=$link_array}
{* ここにテンプレートの本体を記述します *}
{include file='footer.tpl' foo='bar'} |
このテンプレートは、以下のような links.tpl をインクルードします。 <div id="box">
<h3>{$title}{/h3>
<ul>
{foreach from=$links item=l}
.. 何かを行います ...
</foreach}
</ul>
</div> |
|
例 7-19. {include} と変数への割り当て この例は、nav.tpl
の内容を変数 $navbar に割り当て、
ページの最初と最後に出力させるものです。
<body>
{include file='nav.tpl' assign=navbar}
{include file='header.tpl' title='Smarty is cool'}
{$navbar}
{* テンプレートの本体をここへ記述します *}
{$navbar}
{include file='footer.tpl'}
</body> |
|
例 7-20. さまざまな {include} リソースの例 {* ファイルの絶対パス *}
{include file='/usr/local/include/templates/header.tpl'}
{* ファイルの絶対パス(結果は上と同じ) *}
{include file='file:/usr/local/include/templates/header.tpl'}
{* Windows環境のファイルの絶対パス(接頭辞の"file:"は必須) *}
{include file='file:C:/www/pub/templates/header.tpl'}
{* "db"と名付けられたテンプレートリソースからインクルード *}
{include file='db:header.tpl'}
{* 変数名に格納された名前のテンプレートをインクルード - 例 $module = 'contacts' *}
{include file="$module.tpl"}
{* この例は、シングルクォートでは変数が展開されないため、動作しません *}
{include file='$module.tpl'}
{* 複数の可変テンプレートをインクルード - 例 amber/links.view.tpl *}
{include file="$style_dir/$module.$view.tpl"} |
|
{include_php}、
{insert}、
{php}、
テンプレートリソース および
コンポーネント化したテンプレート
も参照してください。