smarty模板里面需要用到一些他的内建函数,还有一些我们需要自定义的函数。
如:config_load file,smarty.server.SERVER_NAME等。
还有一些自定义函数:要我们利用最基本的结构自己去构建。
如下所示:
<h1>内建函数</h1> <{foreach from=$var5 item=temp}> <{$temp}> <{/foreach}> <br/> <{foreach from=$var6 item=temp key=k}> <br/><{$temp}><br/> <{$k}> <{/foreach}> <br/> <{foreach from=$var8 item=temp}> <{foreach from=$temp item=val key=k}> <{if $k!='city1'}> <{$val}>==== <{/if}> <{/foreach}> <{/foreach}><br/> <{if $p>10}> This is a number > 10 <{else}> This is a number < 10 <{/if}>
普通的函数和块状函数注册如下:
<?php require_once "./libs/Smarty.class.php"; $smarty=new Smarty(); $smarty->left_delimiter="<{"; $smarty->right_delimiter="}>"; //自定义函数1 function test1($args){ $str=""; for($i=0; $i<$args['times'];$i++){ $str.="<font color='".$args['color']."' size ='".$args['size']."'>".$args['con']."</font>".'<br/>'; } return $str; } //自定义函数2 function test2($args,$con){ $str=""; for($i=0; $i<$args['times'];$i++){ $str.="<font color='".$args['color']."' size ='".$args['size']."'>".$con."</font>".'<br/>'; } return $str; } //$smarty->register_function("mytest1","test1");//普通注册 $smarty->register_block("mytest2","test2");//块注册 $smarty->display("test3.tpl"); ?>
对应的模板是:
<h1>自定义函数</h1>
<{mytest2 times="100" color="red" size="5"}>
nihao
<{/mytest2}>
另外在\libs\plugins文件夹下也可以自定义插件函数,自定义插件的方式:
在文件夹下面,建立function.函数名.class文件
在对应的模板里面,直接调用就可用,不用去注册。
<?php function smarty_function_mytest($args,&$smart){ $str=""; for($i=0; $i<$args['times'];$i++){ $str.="<font color='".$args['color']."' size ='".$args['size']."'>".$args['con']."</font>".'<br/>'; } return $str; } ?>
如果是块函数的话就用:function smarty_block_mytest1($args,$con)
时间: 2024-11-05 06:30:57