Smarty comes with several built-in functions. Built-in functions
are integral to the template language. You cannot create custom
functions with the same names, nor can you modify built-in functions.
{capture}
{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 as the name. All {capture}
commands must be paired with {/capture}. You can nest capture commands.
Caution |
Be careful when capturing {insert}
output. If you have
caching
enabled and you have
{insert}
commands that you expect to run
within cached content, do not capture this content.
|
Example 7-1. capturing template content {* we don't want to print a table row unless content is displayed *}
{capture name=banner}
{include file='get_banner.tpl'}
{/capture}
{if $smarty.capture.banner ne ''}
<table>
<tr>
<td>
{$smarty.capture.banner}
</td>
</tr>
</table>
{/if} |
|
Example 7-2. capturing content to a variable This example also demonstrates the
{popup}
function {capture name=some_content assign=popText}
.... some content ....
{/capture}
<a href="#" {popup caption='Help' text=$popText}>help</a> |
|
See also
$smarty.capture,
{eval},
{fetch},
fetch()
and {assign}.