{capture} Attribute Name Type Required Default Description name string no default The name of the captured block assign string No n/a The 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}.