Smarty comes with several built-in functions. These built-in functions
are the integral part of the smarty template engine. You cannot create your own
custom functions
with the same name; and you should not need to
modify the built-in functions.
{capture}
{capture} is used to collect the output of the template between the
tags 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 variable $smarty.capture.foo
where "foo" is the value passed in the name attribute.
If you do not supply the name attribute, then "default" will
be used as the name ie $smarty.capture.default.
{capture}'s can be nested.
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. {capture} with the name attribute {* we don't want to print a div tag unless content is displayed *}
{capture name=banner}
{include file='get_banner.tpl'}
{/capture}
{if $smarty.capture.banner ne ''}
<div id="banner">{$smarty.capture.banner}</div>
{/if} |
|
Example 7-2. {capture} into a template variable This example also demonstrates the
{popup}
function {capture name=some_content assign=popText}
The server is {$smarty.server.SERVER_NAME|upper} at {$smarty.server.SERVER_ADDR}<br>
Your ip is {$smarty.server.REMOTE_ADDR}.
{/capture}
<a href="#" {popup caption='Server Info' text=$popText}>help</a> |
|
See also
$smarty.capture,
{eval},
{fetch},
fetch()
and {assign}.