Get Smarty


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 -

Shop for 2018 World Cup Football Boots Online sale at

Browse best 2018 world cup soccer cleats and shoes from



{call} is used to call a template function defined by the {function} tag just like a plugin function.


Template functions are defined global. Since the Smarty compiler is a single-pass compiler, The {call} tag must be used to call a template function defined externally from the given template. Otherwise you can directly use the function as {funcname ...} in the template.

  • The {call} tag must have the name attribute which contains the the name of the template function.

  • Values for variables can be passed to the template function as attributes.


Attribute Name Type Required Default Description
name string Yes n/a The name of the template function
assign string No n/a The name of the variable that the output of called template function will be assigned to
[var ...] [var type] No n/a variable to pass local to template function

Option Flags:

Name Description
nocache Call the template function in nocache mode

Example 7.20. Calling a recursive menu example

{* define the function *}
{function name=menu level=0}
  <ul class="level{$level}">
  {foreach $data as $entry}
    {if is_array($entry)}
      {call name=menu data=$entry level=$level+1}

{* create an array to demonstrate *}
{$menu = ['item1','item2','item3' => ['item3-1','item3-2','item3-3' =>

{* run the array through the function *}
{call name=menu data=$menu}
{call menu data=$menu} {* short-hand *}


Will generate the following output

* item1
* item2
* item3
      o item3-1
      o item3-2
      o item3-3
            + item3-3-1
            + item3-3-2
* item4


See also {function}

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 16 plus 5? (Are you human?)