What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
提供一个回调函数,这个回调函数将在从资源里面无法获取到模板的时候调用。
该设置一般在当模板是文件资源的时候起作用。 当找不到资源自身的时候,该设置不会调用,而是会抛出SmartyException异常。
Example 13.5. $default_template_handler_func
<?php $smarty = new Smarty(); $smarty->default_template_handler_func = 'my_default_template_handler_func'; /** * 默认模板处理函数 * * 当Smarty的文件资源无法载入需要的文件时调用。 * * @param string $type 资源类型 (如:"file", "string", "eval", "resource") * @param string $name 资源名称 (如:"foo/bar.tpl") * @param string &$content 模板的内容 * @param integer &$modified 模板修改时间 * @param Smarty $smarty Smarty实例 * @return string|boolean 返回文件路径或布尔值, * 布尔值true表示$content 和 $modified已经赋值, * 布尔值false表示没有默认模板可供载入。 */ function my_default_template_handler_func($type, $name, &$content, &$modified, Smarty $smarty) { if (false) { // 返回文件路径 return "/tmp/some/foobar.tpl"; } elseif (false) { // 直接返回模板内容 $content = "the template source"; $modified = time(); return true; } else { // 告诉Smarty无法找到模板 return false; } } ?>