Smarty學習筆記(二)

1.引用php

{include file="xxx.xxx" sitename="xxx"}

向引入的文件傳入變量:

{include file="xxx.xxx" sitename="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('你','是別人的'))}

3.使用php函數

{<param1>|<php function name>:<param2>:<param3>:<param4>}
例如:

字符替換函數插件

str_replace('被替換的',"替換爲",被替換的變量)設計

例如將變量title的值「title」替換爲」titlh「,而且保持首字母大寫,無字符時默認顯示"notitle"code

{'e'|str_replace:'h':$articletitle|default:'notitle'|capitalize}


4.向smarty中加入自定義函數

 function test($params){
        $p1 = $params['p1'];
        $p2 = $params['p2'];
        return 'p1='.$p1.',p2='.$p2;
    }
    
    $smarty->registerPlugin('function','f_test','test');

第一個參數爲加入的函數類型(function、modifier、block),第二個爲在smarty中的函數名,第三個爲要添加的函數名

調用:對象

{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;
    }

?>

xxx.tpl

{test2 replace='true' maxnum = 100}
,,,,,,,,,
{/test2}
輸出結果 會所有替換爲半角句號
相關文章
相關標籤/搜索