{include} {include} タグを使用して、 現在のテンプレートに他のテンプレートをインクルードします。 現在のテンプレートにて利用可能なあらゆる変数は、 インクルードされたテンプレートでも同じく利用可能です。 {include} タグには、テンプレートリソースのパスを含んだ file 属性を必ず指定する必要があります。 {include} の出力をブラウザに表示する代わりに変数に格納したい場合は、 オプションの assign 属性にその変数名を定義します。 {assign} と同等です。 インクルードされたテンプレートに変数を渡すには、 attributes を使用します。インクルードされたテンプレートに明示的に渡された変数は、 インクルードされたファイルのスコープでのみ有効となります。 そのテンプレートに同じ名前の変数が存在する場合は、 渡された変数がそれをオーバーライドします。 全ての割り当て変数の値は、インクルードされたテンプレートのスコープが閉じた後に元に戻ります。 これは、インクルードされたテンプレート内で全ての変数を使用可能であるということです。 しかし、インクルードされたテンプレート内での変数の変更は {include} の後でインクルードしている側のテンプレート内では見ることはできません。 $template_dir ディレクトリ外にあるファイルを {include} するには、 テンプレートリソース を指定します。 属性名 必須 デフォルト 概要 file string Yes n/a インクルードするテンプレートファイル名 assign string No n/a インクルードしたコンテンツの出力を格納する変数名 [var ...] [var type] No n/a ローカルからテンプレートに渡す変数 シンプルな {include} の例 {$title} {include file='page_header.tpl'} {* ここにテンプレートの本体を記述します。変数 $tpl_name はたとえば 'contact.tpl' などに置き換えられます。 *} {include file="$tpl_name.tpl"} {include file='page_footer.tpl'} ]]> {include} に変数を渡す このテンプレートは、以下のような links.tpl をインクルードします。

{$title}{/h3>
    {foreach from=$links item=l} .. 何かを行います ... ]]> {include} と変数への割り当て この例は、nav.tpl の内容を変数 $navbar に割り当て、 ページの最初と最後に出力させるものです。 {include file='nav.tpl' assign=navbar} {include file='header.tpl' title='Smarty is cool'} {$navbar} {* テンプレートの本体をここへ記述します *} {$navbar} {include file='footer.tpl'} ]]> さまざまな {include} リソースの例 {include_php}{insert}{php}テンプレートリソース および コンポーネント化したテンプレート も参照してください。