UCHome二次开发时,了解模板的语法是必须的,下面对其中的语法做一一介绍。至于模板的解析过程请参考《UCHome二次开发之模板解析》。
1、调用其他模板
1 | <!--{template footer}--> |
说明:将以模板header.htm来替换此处的代码
2、调用头像
模板代码:
1 | <!--{avatar($value[uid],small)}--> |
解析后的代码:
1 | <?php echo avatar( $value [uid],small); ?> |
3、调用广告
模板代码:
解析后的代码:
1 | <?php adshow( 'header' ); ?> |
4、调用时间
模板代码:
1 | <!--{date('Y-m-d H:i', $value[dateline], 1)}--> |
解析后的代码:
1 | <?php echo sgmdate( 'Y-m-d H:i' , $value [dateline], 1); ?> |
5、输出PHP代码
模板代码:
1 | <!--{eval echo formhash();}--> |
解析后的代码:
1 | <?php echo formhash(); ?> |
说明:<!–{eval和}–>之间的是需要执行的PHP代码,要求语句完整。
6、调用变量
模板代码:
1 | < a href = "space.php?uid=$value[uid]" >{$_SN[$value[uid]]}</ a > |
解析后的代码:
1 | <a href= "space.php?uid=<?=$value['uid']?>" ><?= $_SN [ $value [ 'uid' ]]?></a> |
说明:{和}之间的是需要输出的变量。
7、选择输出逻辑
模板代码:
1 | <!--{if empty($mtag['ismember']) && $mtag['joinperm'] < 2}--> |
2 | < li >< a href = "cp.php?ac=mtag&op=join&tagid=$mtag[tagid]" id = "a_mtag_join_$mtag[tagid]" onclick = "ajaxmenu(event, this.id, 99999)" >加入群组</ a ></ li > |
3 | <!--{elseif $mtag['allowpost']}--> |
4 | < li >< a href = "cp.php?ac=thread&tagid=$mtag[tagid]" >发起话题</ a ></ li > |
解析后的代码:
1 | <?php if ( empty ( $mtag [ 'ismember' ]) && $mtag [ 'joinperm' ] < 2) { ?> |
2 | <li><a href= "cp.php?ac=mtag&op=join&tagid=<?=$mtag['tagid']?>" id= "a_mtag_join_<?=$mtag['tagid']?>" οnclick= "ajaxmenu(event, this.id, 99999)" >加入群组</a></li> |
3 | <?php } elseif ( $mtag [ 'allowpost' ]) { ?> |
4 | <li><a href= "cp.php?ac=thread&tagid=<?=$mtag['tagid']?>" >发起话题</a></li> |
说明:当然这里可以没有elseif,其语法有点类似VB,需要有结尾符。
8、循环输出逻辑
模板代码 1:
01 | <!--{loop $list $key $value}--> |
02 | < tr <!--{if $key%2==1}--> <!--{/if}--> > |
04 | <!--{if $value[displayorder]}--> [顶] <!--{/if}--> |
05 | <!--{if $value[digest]}--> [精] <!--{/if}--> |
06 | < a href = "space.php?uid=$value[uid]&do=thread&id=$value[tid]" >$value[subject]</ a ></ td > |
07 | < td >< a href = "space.php?uid=$value[uid]" >{$_SN[$value[uid]]}</ a >< br >$value[replynum]/$value[viewnum]</ td > |
08 | < td >< a href = "space.php?uid=$value[lastauthorid]" title = "{$_SN[$value[lastauthorid]]}" >{$_SN[$value[lastauthorid]]}</ a >< br > <!--{date('m-d H:i',$value[lastpost],1)}--> </ td > |
解析后的代码 1:
01 | <?php if ( is_array ( $list )) { foreach ( $list as $key => $value ) { ?> |
02 | <tr <?php if ( $key %2==1) { ?><?php } ?>> |
04 | <?php if ( $value [ 'displayorder' ]) { ?> [顶] <?php } ?> |
05 | <?php if ( $value [ 'digest' ]) { ?> [精] <?php } ?> |
06 | <a href= "space.php?uid=<?=$value['uid']?>&do=thread&id=<?=$value['tid']?>" ><?= $value [ 'subject' ]?></a></td> |
07 | <td><a href= "space.php?uid=<?=$value['uid']?>" ><?= $_SN [ $value [ 'uid' ]]?></a><br><?= $value [ 'replynum' ]?>/<?= $value [ 'viewnum' ]?></td> |
08 | <td><a href= "space.php?uid=<?=$value['lastauthorid']?>" title= "<?=$_SN[$value['lastauthorid']]?>" ><?= $_SN [ $value [ 'lastauthorid' ]]?></a><br><?php echo sgmdate( 'm-d H:i' , $value [lastpost],1); ?></td> |
说明:loop后跟三个参数时,第一个参数是用于循环的数组,第二个和第三个参数分别是对数组中每一项循环时项的键名和值。
模板代码 2:
1 | <!--{loop $memberlist $value}--> |
3 | < div >< a href = "space.php?uid=$value[uid]" >< img src=" <!--{avatar($value[uid],small)}--> " alt="{$_SN[$value[uid]]}" /></ a ></ div > |
4 | < p >< a href = "space.php?uid=$value[uid]" >{$_SN[$value[uid]]}</ a ></ p ></ li > |
解析后的代码 2:
1 | <?php if ( is_array ( $memberlist )) { foreach ( $memberlist as $value ) { ?> |
3 | <div><a href= "space.php?uid=<?=$value['uid']?>" ><img src= "<?php echo avatar($value[uid],small); ?>" alt= "<?=$_SN[$value['uid']]?>" /></a></div> |
4 | <p><a href= "space.php?uid=<?=$value['uid']?>" ><?= $_SN [ $value [ 'uid' ]]?></a></p></li> |
说明:loop后跟两个参数时,第一个参数是用于循环的数组,第二个参数是对数组中每一项循环时项的值。
注:以上所有实例皆摘录自UCHome 1.5默认模板。对比一下模板代码和解析后的代码便可知语法的效果,所以文中不多解释。个人自习结果,如有不对之处欢迎拍砖。