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 | 将改行符转化为 标签。 |
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 | 创建图片(标签)。 |
popup_init | 初始化弹出框。 |
popup | 显示弹出框。 |
debug | 启动调试窗口。 |