Smarty マニュアル

前のページ

次のページ

第 7章組み込み関数

目次

capture

config_load

foreach,foreachelse

include

include_php

insert

if,elseif,else

ldelim,rdelim

literal

php

section,sectionelse

strip

Smartyにはいくつかの組み込み関数があります。これはテンプレート言語には必須のものです。 これらと同じ名前のカスタム関数を定義する事や、組み込み関数を修正する事はできません。

capture

属性名型必須デフォルト概要

name

string

no

default

キャプチャされるブロックの名前

assign

string

No

n/a

キャプチャされた出力を割り当てるための変数名

テンプレートの出力をブラウザに表示する代わりに変数に受け渡します。{capture} ... {/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命令があるなら、 そのコンテンツはキャプチャされません。



例 7-1. テンプレートのコンテンツをキャプチャする

{* コンテンツが表示されない限り、テーブルの行を出力しない *}{capture name=banner}{include file="get_banner.tpl"}{/capture}{if $smarty.capture.banner ne ""}<tr><td>{$smarty.capture.banner}</td></tr>{/if}

ページ上段