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}輸出結果 會所有替換爲半角句號