Smarty类主要的属性
分类 | 属性 | 说明 | 默认值 |
路径 | template_dir | 模板文件的保存目录 | ./templates |
| compile_dir | 编译完成的模板的保存目录 | ./templates_c |
| config_dir | 设定文件的保存目录 | ./configs |
| cache_dir | 缓冲的保存目录 | ./cache |
| secure_dir | 安全目录的数组(只有在$security=TRUE时有效) | - |
| trusted_dir | 信赖目录的数组(只有在$security=TRUE时有效) | - |
| plugins_dir | 插件的保存目录 | ./plugins |
缓冲 | caching | 缓冲功能是否有效 | 0 |
| cache_lifetime | 缓冲数据的有效期限(秒单位) | 360 |
| cache_handler_func | 处理缓冲的句柄函数 | - |
| cache_modified_check | 是否检测If-Modified-Since头 | FALSE |
设置文件 | config_overwriter | 如果有同一设定是否覆盖 | TRUE |
| config_booleanize | 设置文件的On/Off,yes/no是否向TRUE/FALSE变换 | TRUE |
| config_read_hidden | 是否许可读入隐藏块 | FALSE |
续表
分类 | 属性 | 说明 | 默认值 |
| config_fix_newlines | 设定文件的改行是否变换为"\n" | TRUE |
编译 | compile_check | 模板变更时是否进行编译处理 | TRUE |
| force_compile | 在得到请求时,是否进行强制编译 | FALSE |
调试 | debugging | 显示调试前台 | FALSE |
| debug_tpl | 调试前台显示用的模板文件 | debug.tpl |
| debugging_ctrl | 调试前台有效/无效是否通过在Query信息控制 | NONE |
安全 | security | 安全模式是否有效 | FALSE |
| security_settings | 安全模式的设定 | 参考后面 |
| use_sub_dirs | 是否可用子目录 | FALSE |
功能扩张 | autoload_filters | 适用的适配器 | — |
| compile_file | 编译模板的类(文件名) | Smarty_Compile.class.php |
| compile_class | 编译模板的类 | Smarty_Compile |
| config_class | 读入设置文件的类 | Config_File |
| default_modifiers | 默认适用的后缀 | - |
| default_resource_type | 默认使用的资源 | file |
其他 | left_delimiter | 模板的左大括号 | { |
| right_delimiter | 模板的右大括号 | } |
| compile_id | 识别编译完全的模板用的ID | - |
| default_template_handler_func | 模板文件的读入失败时的处理函数 | - |
| error_reporting | 错误通知水平(与php.ini的error_reporting参数相当) | - |
| php_handling | 模板中含有的PHP脚本的处理方法 | SMARTY_PHP_PASSTHRU |
|
| 设定值 | 说明 |
|
| SMARTY_PHP_PASSTHRU | 不执行脚本直接输出(默认) |
|
| SMARTY_PHP_QUOTE | 将脚本以HTML标签的形式显示 |
|
| SMARTY_PHP_REMOVE | 在模板中除去脚本块 |
|
| SMARTY_PHP_ALLOW | 许可执行脚本 |
| request_vars_order | 注册请求变量的顺序 | EGPCS |
| request_use_auto_globals | 模板中是否使用$HTTP_*_VARS[],$_*[]二者之一 | TRUE(使用$_[]) |
Security_settings属性中可指定的联想数组的关键字如下。
安全模式的详细设置
关键字名 | 说明 | 默认值 |
PHP_HANDLING | 是否检查php_handling属性的值 | FALSE |
IF_FUNCS | {if}函数中可使用的PHP函数名(数组) | array('array','list','isset','empty','count', |
INCLUDE_ANY | 模板包含时是否检查security_dir属性 | FALSE |
PHP_TAGS | 是否许可使用{php}函数 | FALSE |
MODIFIER_FUNCS | 作为运算符可使用的PHP函数 | array('count') |
ALLOW_CONSTANTS | 是否允许参照常量 | FALSE |
模块的基本语法
Smarty的模块文件由如下的元素组成。
No. | 元素名 | 语法 |
说明 | ||
1 | 变量 | {$变量名} |
模板上动态修改的值。由从PHP脚本明确传过来的模板变量与在Smarty中自动生成的 | ||
2 | 调节器 | {$变量名|运算符[:"参数"[….]]} |
加工变量或函数的返回值用的简易命令。可使用[|]连接多个调节器 | ||
3 | 函数 | {函数名 属性="属性值"…}~{/函数名} |
条件命令或重复处理等控制模板运行的命令 | ||
4 | 运算符 | - |
代数运算符(+,-,*,/,%)或比较运算符(==,!=,!,<,>,>=,<=) | ||
5 | 注释 | {*~*} |
不能成为模板引擎的解析对象的注释信息 | ||
HTML模板 | ||
No.1~5中不包含的固定的HTML部分 |
函数名 | {$var} |
定义和用法 | 参照模板变量。 |
语法 | 1.{$var} 普通值 |
参数描述 | var,变量名 |
函数名 | {$smarty} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
定义和用法 | 参照预约变量。 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
语法 | {$smarty.key…} | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
参数描述 | key,关键字 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
提示和注释 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
预约变量{$smarty}是Smarty在运行模板是自动设置值的变量。与模板变量不同,不用为确保预约变量在服务器脚本方编码。
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
例子 | 客户端的种类:{$smarty.server.HTTP_USER_AGENT} |
函数名 | {*~*} |
定义和用法 | 定义注释。 |
语法 | {*comment*} |
参数描述 | comment,注释 |
函数 | 描述 |
---|---|
assign | 在模板变量中设置值。 |
get_template_vars | 取得模块变量值。 |
clear_assign | 清除指定模板变量的值。 |
clear_all_assign | 清除所有模板变量的值。 |
display | 执行模板文件。 |
fetch | 执行模板文件(作为结果字符串返回)。 |
clear_cache | 清空指定缓冲。 |
clear_all_cache | 清空所有缓冲。 |
config_load | 导入设置文件。 |
get_config_vars | 取得设置文件的参数值。 |
clear_config | 清除设置文件的参数值。 |
调节符拥有对模板中的变量进行加工/转换的功能。调节符的语法为{变量名|调节符[参数[…]]}。
函数 | 描述 |
---|---|
capitalize | 将第一个字符变为大写。 |
lower | 转换为小写字母。 |
upper | 转换为大写字母。 |
replace | 替换字符串中的特定部分。 |
regex_replace | 替换字符串中的特定部分(正则表达式)。 |
escape | 对字符串进行特殊字符转换处理。 |
nl2br | 将改行符转化为<br/>标签。 |
date_format | 进行日期数据的格式变换。 |
string_format | 定义字符串的显示格式。 |
default | 设置变量为NULL时显示的默认值。 |
strip | 将输出字符串中的连续空白或改行符转换为单个空格或其他字符。 |
truncate | 将字符串最后舍去指定字节数。 |
strip_tags | 除去字符串中含有的标签。 |
indent | 在段落的开始加入缩进。 |
模板函数就是在模板文件(.tpl)中能被调用的函数。这些函数能实现简单的条件判断,循环等功能。模板函数的语法就像标签一样,{函数名 属性=”属性值”…}{/函数名}。
函数 | 描述 |
---|---|
if | 条件判断函数,为TRUE时,其下的模板内容将显示,可与{elseif}块构建多重条件判断。 |
foreach | 从指定的数组中循环顺序取出数值/关键字,分别设置在item/key中。 |
section | 从指定的数组中取出数值,并进行循环处理。 |
assign | 设置模板变量。 |
fetch | 导入外部文件。 |
capTURE | 将输出内容设置到模板变量中。 |
cycle | 用于轮转输出一组值。 |
include | 包含进外部模板。 |
config_load | 使设置文件有效化。 |
counter | 创建计数器。 |
ldelim | 将左括号进行escape后输出。 |
rdelim | 将右括号进行escape后输出。 |
literal | 对模板的预言字符进行escape后输出。 |
strip | 除去输出字符串开头/结尾中含有的空白字符串。 |
maitlto | 变换邮件的连接为难懂的文字。 |
html_checkboxes | 创建复选框。 |
html_options | 创建选择框。 |
html_select_date | 创建日期输入用的选择框。 |
html_select_time | 创建时刻输入用的选择框。 |
html_image | 创建图片(<img>标签)。 |
popup_init | 初始化弹出框。 |
popup | 显示弹出框。 |
debug | 启动调试窗口。 |