{capture}Attribute NameTypeRequiredDefaultDescriptionnamestringnodefaultThe name of the captured blockassignstringNon/aThe variable name where to assign the captured output to
{capture} is used to collect the output of the template into a
variable instead of displaying it. Any content between {capture
name="foo"} and {/capture} is collected into the variable specified
in the name attribute. The captured content can be used in the
template from the special variable $smarty.capture.foo
where "foo" is the value passed in the name attribute. If you do not
supply a name attribute, then "default" will be used. All {capture}
commands must be paired with {/capture}. You can nest capture commands.
Technical Note
Smarty 1.4.0 - 1.4.4 placed the captured content into the
variable named $return. As of 1.4.5, this behavior was changed to use
the name attribute, so update your templates accordingly.
Be careful when capturing {insert}
output. If you have
caching
turned on and you have
{insert}
commands that you expect to run
within cached content, do not capture this content.
capturing template content
{$smarty.capture.banner}
{/if}
]]>
See also
$smarty.capture,
{eval},
{fetch},
fetch()
and {assign}.