smarty模板的外掛使用報錯問題(已解決)
專案中用Smarty 但是Smarty 中的字串擷取不支援中文 就想到寫個外掛來實現
在網上找了一些資料 但也是不全 總結了一下 經過測試終於寫出來了 測試了幾天還是比較好用的 也分享一下吧
首先來介紹一下相關的知識:
1. 什麼是smarty?
smarty是一個使用PHP寫出來的模板PHP模板引擎, 是php.net推薦的一個模板系統.
2. 什麼是smarty的外掛?
smarty的外掛是指smarty中的plugins, 是一些嵌入模板內的一些功能性控制語句, smarty中的Variable Modifiers(變數調節)實際就是一些內建的外掛.
3. 外掛是怎麼工作的?
在smarty模板中使用了外掛呼叫語句時動態的載入, 你可以將你寫好的外掛放入smarty解壓目錄中的lib目錄下的plugins, 這樣在模板中使用這些外掛時它將會被自動載入.
4. 外掛有幾種型別?
function, modifier,block, compiler,prefilter, postfilter, outputfilter, resource, insert, 本文中我們只使用function型外掛,其它型別的請讀者自已練習使用.
5. 如何命名外掛?
檔名形式: type.name.php, type指的是型別,上邊的幾種是它的選擇範圍; name: 自定義的外掛名稱,本文中使用showNews來命名.
函式名稱: smarty_type_name(), smarty:固定位置的固定名稱; type與檔名的type一致, name與檔名中的name一致.
快速入門:
在libs/plugins 目錄中建立一個檔案命名為:(外掛檔案必須在此資料夾建,否則報錯找不到)
function.fyr.php的外掛檔案:
<?php
//自定義函式
function smarty_function_fyr
//$str="<font color='".$args['color']."' size='".$args['size']."'>".$args['num1'].'+'.$args['num2']."的和=".$sum."</font>"."<br/>";
return $args['name'];
}
?>
這樣smarty外掛就做好了,外掛其實就是函式 ,在tpl模板檔案直接使用無需註冊
tpl模板檔案:
<h1>使用者列表</h1>
<{fyr name='bbb'}>