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)