<table summary="Header navigation table" width="100%" border="0" cellpadding="0" cellspacing="0"><tr><th colspan="3" align="center">Smarty - the compiling PHP template engine</th></tr><tr><td width="25%" align="left" valign="bottom"><a href="language.function.block.html" accesskey="P">Prev</a></td> <td width="50%" align="center" valign="bottom">Chapter 7. Built-in Functions[第七章.内置函数]</td> <td width="25%" align="right" valign="bottom"><a href="language.function.capture.html" accesskey="N">Next</a></td></tr></table>
# {call} 调用
{call} is used to call a template function defined by the {function} tag just like a plugin function.
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.
{call}用来调用[{function}](#)标签定义的模板函数,类似于插件函数。
<table width="80%" border="0" cellpadding="2" cellspacing="2" class="note"><caption> 提示 </caption> <tr><td>Note<br/> 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.<br/> 模板函数具全局作用域,因为Smarty编译器是单进程的编译器,{call}标签必须用来调用给定的外部模板定义的模板函数。</td> </tr></table>
另外你可以在模板中直接使用{funcname...}函数。
{call}标签的属性名须包含模板函数的名称;
变量值可以通过模板函数作为属性传递。
**Attribute: **
| 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 | Cakk the template function in nocache mode |
**属性: **
| 属性名 | 类型 | 是否必须 | 缺省值 | 描述 |
|-----|-----|-----|-----|-----|
| name | string | yes | *n/a* | 模板函数名称 |
| assign | string | no | n/a | (模板函数的结果被贮存而不显示),分配的输出变量名 |
| [var...] | [变量类型] | no | n/a | 传递给本地的模板函数变量 |
**选项标签:**
| **名称** | **描述** |
|-----|-----|
| nocache | 调用的模板函数为无缓存模式 |
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="EXAMPLE"><tr><td><div class="EXAMPLE"> <a name="AEN2720" id="AEN2720"> </a> <b>Example 7.20. Calling a recursive menu example<br/> 例 7-20.调用递归菜单例子</b> <table border="0" bgcolor="#E0E0E0" width="100%"><tr><td><p> {* define the function *} {* 定义函数 *} <br/> {function name=menu level=0}<br/> <ul class="level{$level}"><br/> {foreach $data as $entry}<br/> {if is_array($entry)}<br/> <li>{$entry@key}</li><br/> {call name=menu data=$entry level=$level+1}<br/> {else}<br/> <li>{$entry}</li><br/> {/if}<br/> {/foreach}<br/> </ul><br/> {/function}</p> <p><br/> {* create an array to demonstrate *}{*创建一个演示数组*}<br/> {$menu = ['item1','item2','item3' => ['item3-1','item3-2','item3-3' =>['item3-3-1','item3-3-2']],'item4']}<br/> {* run the array through the function *}<br/> {call name=menu data=$menu}<br/> {call menu data=$menu} {* short-hand *}<br/><br/> Will generate the following output</p> <p>* item1<br/> * item2<br/> * item3<br/> --o item3-1<br/> --o item3-2<br/> --o item3-3<br/> ----+ item3-3-1<br/> ----+ item3-3-2<br/> * item4<br/></p></td> </tr></table> See also {function}<br/> 参见<a href="language.function.function.html">{function}</a></div></td> </tr></table>
<table summary="Footer navigation table" width="100%" border="0" cellpadding="0" cellspacing="0"><tr><td width="33%" align="left" valign="top"><a href="language.function.block.html" accesskey="P">Prev</a></td><td width="34%" align="center" valign="top"><a href="index.html" accesskey="H">Home</a></td><td width="33%" align="right" valign="top"><a href="language.function.capture.html" accesskey="N">Next</a></td></tr><tr><td width="33%" align="left" valign="top">{block}<br/> 块</td><td width="34%" align="center" valign="top"><a href="language.builtin.functions.html" accesskey="U">Up</a></td><td width="33%" align="right" valign="top">{capture}</td></tr></table>
- Smarty模板编译引擎
- 序
- 译序
- I.开始
- 第一章. 什么是Smarty?
- 第二章. 安装
- II.模板设计者篇
- 第三章.基本语法
- 注释
- 变量
- 函数
- 属性
- 双引号里嵌入变量
- 数学运算
- 忽略Smarty解析
- 第四章.变量
- 从PHP分配的变量
- 从配置文件读取的变量
- 变量范围
- {$smarty}保留变量
- 第五章.变量调节器
- capitalize
- cat
- count_characters
- count_paragraphs
- count_sentences
- count_words
- date_format
- default
- escape
- indent
- lower
- nl2br
- regex_replace
- replace
- spacify
- string_format
- strip
- strip_tags
- truncate
- upper
- wordwrap
- 第六章.组合修改器
- 第七章.内置函数
- {$var=}
- {append}
- {assign}
- {block}
- {call}
- {capture}
- {config_load}
- {debug}
- {extends}
- {for}
- {foreach},{foreachelse}
- @index
- {function}
- {if},{elseif},{else}
- {include}
- {include_php}
- {insert}
- {ldelim},{rdelim}
- {literal}
- {nocache}
- {php}
- {section},{sectionelse}
- .index
- {while}
- 第八章.自定义函数
- {counter}
- {cycle}
- {eval}
- {fetch}
- {html_checkboxes}
- {html_image}
- {html_options}
- {html_radios}
- {html_select_date}
- {html_select_time}
- {html_table}
- {mailto}
- {math}
- {textformat}
- 第九章.配置文件
- 第十章.调试控制台
- III.模板程序员篇
- 第十一章 常量
- SMARTY_DIR
- 第十二章 Smarty类变量
- $template_dir
- 第十三章.Smarty类方法
- append()
- appendByRef()
- assign()
- assignByRef()
- clearAllAssign()
- clearAllCache()
- clearAssign()
- clearCache()
- clearCompiledTpl()
- clearConfig()
- compileAllConfig()
- compileAllTemplates()
- configLoad()
- createData()
- createTemplate()
- disableSecurity()
- display()
- enableSecurity()
- fetch()
- getConfigVars()
- getRegisteredObject()
- getTags()
- getTemplateVars()
- isCached()
- loadFilter()
- registerFilter()
- registerPlugin()
- registerObject()
- registerResource()
- templateExists()
- unregisterFilter()
- unregisterPlugin()
- unregisterObject()
- unregisterResource()
- testInstall()
- 第十四章.缓存
- 建立缓存
- 多重缓存
- 缓存集合
- 控制插件输出的可缓存性
- 第十五章.高级特性
- 安全
- 通过模板更改设置
- 模板继承
- 数据流
- 对象
- 静态类
- 预过滤器
- 后过滤器
- 输出过滤器
- 缓存处理函数
- 资源
- 第十六章.以插件扩展Smarty
- 插件如何工作
- 命名约定
- 编写插件
- 模板函数
- 调节器
- 块函数
- 编译函数
- 预滤器/后滤器
- 输出过滤器
- 资源
- 插入
- Ⅳ.附录
- 第十七章.疑难解答
- Smarty/PHP 错误
- 第十八章.使用技巧和经验
- 空白变量处理
- 默认变量处理
- 传递变量标题给头模板
- 日期
- WAP/WML
- 组件化模板
- 拒绝电子邮件地址
- 第十九章. 相关资源
- 第二十章. 漏洞
- 3.0安装包
- 2.x版本升级至3.x版本的提示
- 3.0.x使用指南
- 翻译人员列表