1.引用php
{include file="xxx.xxx" sitename="xxx"}
{include file="xxx.xxx" sitename="xxx"}
2.类与对象api
用assign把类的对象以变量形式赋值到smarty模板中使用数组
php内函数
class My_Object{ function meth1($params){ return $params[0].'已经'.$params[1]; } } $myobj = new My_Object(); $smarty->assign('myobj',$myobj);tpl内
{$myobj->meth1(array('你','是别人的'))}
{<param1>|<php function name>:<param2>:<param3>:<param4>}例如:
字符替换函数插件
str_replace('被替换的',"替换为",被替换的变量)设计
例如将变量title的值“title”替换为”titlh“,而且保持首字母大写,无字符时默认显示"notitle"code
{'e'|str_replace:'h':$articletitle|default:'notitle'|capitalize}
function test($params){ $p1 = $params['p1']; $p2 = $params['p2']; return 'p1='.$p1.',p2='.$p2; } $smarty->registerPlugin('function','f_test','test');
调用:对象
{f_test p1="test1" p2="test2"}实质:调用的时候将参数=值封装成一个数组传入函数,在函数内解包
5.制做、使用插件:it
①在plugins目录下新建文件,例如新建一个function插件,则命名为function.xxx.php,函数的命名规范为smarty_function_xxxio
则能够经过{xxx param1=... param2=...}来调用(忽视smarty_function部分)
②modifier类型(变量调节器)与之不一样的在于参数不是数组,而是有几个写几个
③block类型(区块插件)
block插件名称为smarty_block_xxx,则使用方法为<xxx>...</xxx>
参数是打包成数组传入
注意有两个参数,第二个参数为block的内容
例如设计一个插件将一段话中的前多少个字符显示,而且替换全角逗号为半角 。
block.test2.php
<?php function smarty_block_test2($params, $content){ $replace = $params['replace']; $maxnum = $params['maxnum']; if($replace == 'true'){ $content = str_replace(',',',',$content); $content = str_replace(',',',',$content); } $content = substr($content,0,$maxnum); return $content; } ?>
{test2 replace='true' maxnum = 100} ,,,,,,,,, {/test2}输出结果 会所有替换为半角句号