1. 程式人生 > >smarty模板的外掛使用報錯問題(已解決)

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

($args,$smarty){

        //$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'}>