PHP Classes

File: htdocs/xoops_lib/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-call.md

Recommend this page to a friend!
  Packages of Michael Beck   Xoops 2.5   htdocs/xoops_lib/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-call.md   Download  
File: htdocs/xoops_lib/vendor/smarty/smarty/docs/designers/language-builtin-functions/language-function-call.md
Role: Auxiliary data
Content type: text/markdown
Description: Auxiliary data
Class: Xoops 2.5
Modular content management publication system
Author: By
Last change:
Date: 2 months ago
Size: 2,438 bytes
 

Contents

Class file image Download

{call}

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

> Note > > 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 name of the template function.
  • Values for variables can be passed to the template function as attributes.

Attributes

| Attribute Name | Required | Description | |----------------|----------|------------------------------------------------------------------------------------------| | name | Yes | The name of the template function | | assign | No | The name of the variable that the output of called template function will be assigned to | | [var ...] | No | variable to pass local to template function |

Option Flags

| Name | Description | |---------|--------------------------------------------| | nocache | Call the template function in nocache mode |

Examples

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

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

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