smarty的自定义函数

自定函数的两种做法如下:

① 以手动注册的形式来添加自定义函数

1.1    写一个函数

function abc($args){
       //内容
       $args[‘color’]
}
//注册函数
$smarty->register_function(“myabc”,”abc”);

//可以在tpl文件中

<{myabc color=’’’}>

1.2    注册块函数

function abc2($args,$con){
       //处理代码
}
//注册块函数
$smary->register_block(“myfun2”,” abc2”);

//tpl文件

<{myfun2 属性1=”??” 属性2=”??” }>

hello,world

<{/myfun2}>

② 通过插件的形式来增加自定义函数(注:在smarty给出一个plugsin这个文件夹.)

//形式--文件名 function.???.php
 function smarty_function_???($args,&$smary){
}

//通过插件形式增加一个块.文件名 block.??,php
 function smarty_block_??($args,$con,&$smary){
       //写入代码
}

③例子

//自定义一个函数

 //tpl 调用形式{<dazhu times="4" size="5" con="hello" color="red" >}

 function fun1($args){
       $str="";
       for($i=0;$i<$args['times'];$i++){
            $str.="<br/><font color='".$args['color']."' size='".$args['size']."'>".$args['con']."</font>";
       }
            return $str
} //注册一下 $smarty->register_function("dazhu","fun1"); $smarty->display("test.tpl"); //tpl文件: <{dazhu times="10" con="hello,北京" color="blue" size="5"}>

我们把刚才的案例,演示块注册方式来完成

//tpl文件
<{dazhu times="10" color="blue" size="5"}>
hello,北京
<{/dazhu}>

//代码:
//自定义一个函数(块方式)
 function test2($args,$con){
       $str="";
         for($i=0;$i<$args['times'];$i++){
              $str.="<br/><font color='".$args['color']."' size='".$args['size']."'>".$con."</font>";
              }
              return $str;
       }

 

在smarty给出一个plugsin这个文件夹.

这里我们可以编写一个插件函数,但是这个函数名和文件名有一个规范,必须遵守.

文件名的格式: function.自定义函数名.php

函数的名字:

function smarty_function_自定义函数名($params, &$smarty){

//写码.

}

文件名的格式: block.块名.php

函数的名字:

function smarty_block_块($params, $content, &$smarty){

//写码.

}

 

posted @ 2013-05-21 00:33  柱柱  阅读(332)  评论(0编辑  收藏  举报