【UCHome二次开发】模板语法说明



    UCHome二次开发时,了解模板的语法是必须的,下面对其中的语法做一一介绍。至于模板的解析过程请参考《UCHome二次开发之模板解析》。



    1、调用其他模板

    <!--{template header}-->

    说明:将以模板header.htm来替换此处的代码

    2、调用头像

    模板代码:

    <!--{avatar($value[uid],small)}-->

    解析后的代码:

    <?php echo avatar($value[uid],small); ?>

    3、调用广告

    模板代码:

    <!--{ad/header}-->

    解析后的代码:

    <?php adshow('header'); ?>

    4、调用时间

    模板代码:

    <!--{date('Y-m-d H:i', $value[dateline], 1)}-->

    解析后的代码:

    <?php echo sgmdate('Y-m-d H:i', $value[dateline], 1); ?>

    5、输出PHP代码

    模板代码:

    <!--{eval echo formhash();}-->

    解析后的代码:

    <?php echo formhash(); ?>

    说明:<!--{eval和}-->之间的是需要执行的PHP代码,要求语句完整。

    6、调用变量

    模板代码:

    <a href="space.php?uid=$value[uid]">{$_SN[$value[uid]]}</a>

    解析后的代码:

    <a href="space.php?uid=<?=$value['uid']?>"><?=$_SN[$value['uid']]?></a>

    说明:{和}之间的是需要输出的变量。

    7、选择输出逻辑

    模板代码:

    <!--{if empty($mtag['ismember']) && $mtag['joinperm'] < 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>
    
    <!--{elseif $mtag['allowpost']}-->
    
       <li><a href="cp.php?ac=thread&tagid=$mtag[tagid]">发起话题</a></li>
    
    <!--{/if}-->

    解析后的代码:

    <?php if(empty($mtag['ismember']) && $mtag['joinperm'] < 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>
    
    <?php } elseif($mtag['allowpost']) { ?>
    
       <li><a href="cp.php?ac=thread&tagid=<?=$mtag['tagid']?>">发起话题</a></li>
    
    <?php } ?>

    说明:当然这里可以没有elseif,其语法有点类似VB,需要有结尾符。

    8、循环输出逻辑

    模板代码 1:

    <!--{loop $list $key $value}-->
    
    <tr <!--{if $key%2==1}--><!--{/if}-->>
    
    <td>
    
       <!--{if $value[displayorder]}--> [顶] <!--{/if}-->
    
       <!--{if $value[digest]}--> [精] <!--{/if}-->
    
       <a href="space.php?uid=$value[uid]&do=thread&id=$value[tid]">$value[subject]</a></td>
    
    <td><a href="space.php?uid=$value[uid]">{$_SN[$value[uid]]}</a><br>$value[replynum]/$value[viewnum]</td>
    
    <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>
    
    </tr>
    
    <!--{/loop}-->

    解析后的代码 1:

    <?php if(is_array($list)) { foreach($list as $key => $value) { ?>
    
    <tr <?php if($key%2==1) { ?><?php } ?>>
    
    <td>
    
       <?php if($value['displayorder']) { ?> [顶] <?php } ?>
    
       <?php if($value['digest']) { ?> [精] <?php } ?>
    
       <a href="space.php?uid=<?=$value['uid']?>&do=thread&id=<?=$value['tid']?>"><?=$value['subject']?></a></td>
    
    <td><a href="space.php?uid=<?=$value['uid']?>"><?=$_SN[$value['uid']]?></a><br><?=$value['replynum']?>/<?=$value['viewnum']?></td>
    
    <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>
    
    </tr>
    
    <?php } } ?>

    说明:loop后跟三个参数时,第一个参数是用于循环的数组,第二个和第三个参数分别是对数组中每一项循环时项的键名和值。

    模板代码 2:

    <!--{loop $memberlist $value}-->
    
    <li>
    
    <div><a href="space.php?uid=$value[uid]"><img src="<!--{avatar($value[uid],small)}-->" alt="{$_SN[$value[uid]]}" /></a></div>
    
    <p><a href="space.php?uid=$value[uid]">{$_SN[$value[uid]]}</a></p></li>
    
    <!--{/loop}-->

    解析后的代码 2:

    <?php if(is_array($memberlist)) { foreach($memberlist as $value) { ?>
    
    <li>
    
    <div><a href="space.php?uid=<?=$value['uid']?>"><img src="<?php echo avatar($value[uid],small); ?>" alt="<?=$_SN[$value['uid']]?>" /></a></div>
    
    <p><a href="space.php?uid=<?=$value['uid']?>"><?=$_SN[$value['uid']]?></a></p></li>
    
    <?php } } ?>

    说明:loop后跟两个参数时,第一个参数是用于循环的数组,第二个参数是对数组中每一项循环时项的值。

    注:以上所有实例皆摘录自UCHome 1.5默认模板。对比一下模板代码和解析后的代码便可知语法的效果,所以文中不多解释。个人自习结果,如有不对之处欢迎拍砖。



    本博客所有文章如无特别注明均为原创。
    复制或转载请以超链接形式注明转自枫芸志,原文地址《【UCHome二次开发】模板语法说明
    标签:
    分享:

已经有12 条评论抢在你前面了~

  1. 沙发
    情迷丶安瑾年 2014年2月12日 上午10:48

    好问题,谢谢了!

    [回复]

  2. 板凳
    小风 2011年7月13日 上午11:41

    非常谢谢你的分享,中国有你这样人,不愁web超不过美国,谢谢,诚心的说一声谢谢。

    [回复]

  3. 地板
    不怕不怕 2010年6月7日 下午4:44

    首先很感谢你的经验分享。

    说明:将以模板header.htm来替换此处的代码

    这里好像应该是 footer.htm来替换此处的代码吧。

    [回复]

    晴枫

    晴枫 回复:

    @不怕不怕, 谢谢指出,已改正

    [回复]

  4. 4楼
    1035 2010年3月20日 上午11:48

    支持一下呗

    [回复]

  5. 5楼
    嘎嘎 2010年1月27日 上午10:33

    这个网站为啥把有的符号给转义了? &搞成& amp 了 不能处理下么,看着累

    [回复]

    晴枫

    晴枫 回复:

    @嘎嘎, 编辑器的问题,改过来了

    [回复]

  6. 6楼
    hbflash9 2009年11月1日 上午11:15

    正需要ing,眼泪哗哗地

    [回复]

    晴枫

    晴枫 回复:

    @hbflash9, 呵呵 :-D

    [回复]

  7. 晴枫
    7楼
    晴枫 2009年9月29日 下午1:29

    @jaycn
    就是UCHome模板的一些语法,经过解析后变成PHP代码,看过模板的代码可能就懂了

    [回复]

  8. 8楼
    jaycn 2009年9月29日 下午12:46

    来顶下了,不太懂

    [回复]

无觅相关文章插件,快速提升流量