Get Smarty


Donate Bitcoin Bitcoin

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Buy cheap glasses from and save up to 80%.

Where to buy prescription glasses? is your best choice!

Where to buy discount wedding dresses and cheap smart dresses free shipping -

Brautkleider auf

Buy New Arrival Cheap Prom Dresses 2015 at JDBRIDAL Prom Dress Store

Find Wedding Dresses Online at Canada from

Cheap bridesmaid dresses - rush delivery only 10 days delivery to Australia at

Wholesale Camping Equipment from China at


Chapter 7. Built-in Functions

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.

A few of these functions have an assign attribute which collects the result the function to a named template variable instead of being output; much like the {assign} function.


{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 $ 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.

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


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'}

{if $smarty.capture.banner ne ''}
<div id="banner">{$smarty.capture.banner}</div>


Example 7.2. {capture} into a template variable

This example also demonstrates the upper modifier

{capture name=some_content assign=addrText}
The server is {$smarty.server.SERVER_NAME|upper} at {$smarty.server.SERVER_ADDR}<br>
Your ip is {$smarty.server.REMOTE_ADDR}.


See also $smarty.capture, {eval}, {fetch}, fetch() and {assign}.

No comments for this page.
Post a Comment
All comments are moderated. Support questions are ignored, use the forums instead.
Email: (not shown)
What is 10 plus 19? (Are you human?)