自建函数是smarty提供的函数,不允许修改,只能被调用;
自定义函数是自己编写函数,注册成为smarty的函数,之后可以被调用;
示例:使用smarty自定义函数的机制,编写一个函数myfun1,通过调用该函数(可以输入必要的参数),完成循环输出5次“hello,顺平”,要求内容,颜色,字体大小均可置顶。
(1)自定义函数
//编写自定义函数 function test1($args){ $str = ""; for($i = 1;$i<= $args['times'];$i++){ $str .= "<font size='{$args['size']}' color='{$args['color']}'>{$args['con']}</font><br/>"; } return $str; } //注册自定义函数 $smarty->register_function("lhy1","test1");
<{*tpl中引用自定义函数*}> <{lhy1 times="5" size="5" con="Hello,顺平" color="red"}>
(2)自定义块
//编写自定义函数 function test2($args,$con){ $str = ""; for($i = 1;$i<= $args['times'];$i++){ $str .= "<font size='{$args['size']}' color='{$args['color']}'>{$con}</font><br/>"; } return $str; } //注册自定义函数 $smarty->register_block("lhy2","test2");
<{lhy2 times="5" size="5" color="red"}> Hello,顺平 <{/lhy2}>
(3)利用samrty插件形式增加自定义函数
在smarty包中plugins文件夹下,新建一个文件function.lhy4.php。
文件名的格式:function.自定义函数名.php
function.lhy4.php代码页内容如下,
函数的名字:function smarty_function_自定义函数名($params, &$smarty)。
<?php function smarty_function_lhy4($params, &$smarty){ $str = ""; for($i = 1;$i<= $params['times'];$i++){ $str .= "<font size='{$params['size']}' color='{$params['color']}'>{$params['con']}</font><br/>"; } return $str; }
<{lhy4 times="5" size="5" con="Hello,顺平" color="red"}>
(4)利用samrty插件形式增加自定义块
在smarty包中plugins文件夹下,新建一个文件function.lhy5.php。
文件名的格式:block. 块名.php
function.lhy4.php代码页内容如下,
函数的名字:function smarty_block_块名($params,$content, &$smarty)。
<?php function smarty_block_lhy5($params, $content, &$smarty){ $str = ""; for($i = 1;$i<= $params['times'];$i++){ $str .= "<font size='{$params['size']}' color='{$params['color']}'>{$content}</font><br/>"; } return $str; }
<{lhy5 times="5" size="5" color="red"}> Hello,顺平 <{/lhy5}>