Smartyにはいくつかの組み込み関数があります。これはテンプレート言語には必須のものです。 これらと同じ名前のカスタム関数を定義する事や、組み込み関数を修正する事はできません。
テンプレートの出力をブラウザに表示する代わりに変数に受け渡します。{capture name="foo"} ... {/capture} 間のあらゆるコンテンツは、name属性で指定した変数に格納されます。キャプチャされたコンテンツは特別な変数 $smarty.capture.foo ("foo"はname属性で指定した変数)によって利用できます。name属性を指定しない場合は "default"が使われます。全ての{capture}は{/capture}とペアでなければなりません。この関数はネスト可能です。
テクニカルノート: Smarty 1.4.0 - 1.4.4では、変数$returnにキャプチャしたコンテンツが格納されていました。 Smarty 1.4.5からはname属性を使用する方法に変更されたので適宜にテンプレートを更新して下さい。
| 注意 |
insertの出力をキャプチャする場合には注意が必要です。キャッシュ機能が有効の時に、 キャッシュされたコンテンツ内に実行されるinsert命令があるなら、 そのコンテンツはキャプチャされません。 |