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

1、调用其他模板

1 <!--{template footer}-->

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

2、调用头像

模板代码:

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

解析后的代码:

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

3、调用广告

模板代码:

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

解析后的代码:

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']) &amp;&amp; $mtag['joinperm'] < 2}-->
2    <li><a href="cp.php?ac=mtag&amp;op=join&amp;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&amp;tagid=$mtag[tagid]">发起话题</a></li>
5 <!--{/if}-->

解析后的代码:

1 <?php if(empty($mtag['ismember']) &amp;&amp; $mtag['joinperm'] < 2) { ?>
2    <li><a href="cp.php?ac=mtag&amp;op=join&amp;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&amp;tagid=<?=$mtag['tagid']?>">发起话题</a></li>
5 <?php } ?>

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

8、循环输出逻辑

模板代码 1:

01 <!--{loop $list $key $value}-->
02 <tr <!--{if $key%2==1}--><!--{/if}-->>
03 <td>
04    <!--{if $value[displayorder]}--> [顶] <!--{/if}-->
05    <!--{if $value[digest]}--> [精] <!--{/if}-->
06    <a href="space.php?uid=$value[uid]&amp;do=thread&amp;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>
09 </tr>
10 <!--{/loop}-->

解析后的代码 1:

01 <?php if(is_array($list)) { foreach($list as $key => $value) { ?>
02 <tr <?php if($key%2==1) { ?><?php } ?>>
03 <td>
04    <?php if($value['displayorder']) { ?> [顶] <?php } ?>
05    <?php if($value['digest']) { ?> [精] <?php } ?>
06    <a href="space.php?uid=<?=$value['uid']?>&amp;do=thread&amp;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>
09 </tr>
10 <?php } } ?>

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

模板代码 2:

1 <!--{loop $memberlist $value}-->
2 <li>
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>
5 <!--{/loop}-->

解析后的代码 2:

1 <?php if(is_array($memberlist)) { foreach($memberlist as $value) { ?>
2 <li>
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>
5 <?php } } ?>

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

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

【UCHome二次开发】UCHome模板语法…相关推荐

  1. 第七章:【UCHome二次开发】模板语法说明

    如何让系统每次自动更新缓存,免去每次修改模板后都要到后台更新缓存操作,记住,在解决完所有问题后,要在改回来,否则会大幅度提高服务器负担. 打开source/function_common.php文件, ...

  2. 第五章:【UCHome二次开发】模板解析

    UCHome模板文件位于/template文件夹下,每个模板文件单独一个文件夹,默认模板文件夹为default. 1.模板的使用配置 在根目录下的config.php中进行配 $_SC['templa ...

  3. 第十二章:【UCHome二次开发】全局变量

    UCHome定义了一些全局变量保存常用信息,了解这些变量存放的内容将大大方便我们的二次开发. 以下依次罗列各全局变量所保存的内容: 个别全局变量在不同页面的值会有所不同,使用前最好先测试一下值是否存在 ...

  4. 【UCHome二次开发】全局变量

    UCHome定义了一些全局变量保存常用信息,了解这些变量存放的内容将大大方便我们的二次开发. 以下依次罗列各全局变量所保存的内容: $_SC:系统全局配置 $_SBLOCK:未知 $_SCONFIG: ...

  5. 微信小程序开发02(模板语法与事件绑定)

    模板语法与事件绑定

  6. phpcms 模板php代码,phpcms开发之模板语法规则

    在做phpcms开发过程中,模板语法肯定是要了解的,整理如下: 1.变量表示 {$name} 被解析成 <?php echo $name;?>,表示显示变量$name的值,其中的" ...

  7. 第十一章:【UCHome二次开发】功能修改

    有些功能的修改涉及到了流程或数据需求的变动,这时候简单的修改模板文件已经无法解决问题,而是需要修改对应的流程和数据处理代码来完成.一般处理程序文件位于/source文件夹下.具体的代码修改就是根据功能 ...

  8. UCHome二次开发–基本体系结构

    UCHOME安装后的主要目录与文件介绍,以对uchome的整体结构有一个清晰的了解. 目录结构 admin/      管理后台 api/      API函数[插件开发与模板等的修改不需要动此文件] ...

  9. 如何解决uchome自带编辑器无法获取uchome编辑器里面的值问题?(uchome二次开发)...

    2019独角兽企业重金招聘Python工程师标准>>> <script language="javascript" type="text/java ...

  10. 系统学习 TypeScript(二)——开发流程和语法规则

    前言 我们已经知道了 TypeScript 是什么,以及为什么要用 TypeScript,今天,我们就来学习怎么初步使用它. TypeScript 的使用流程 原始的 TypeScript 文件以 . ...

最新文章

  1. 测试嵌套JavaScript对象键的存在
  2. 推荐15个在线多媒体(图片、音频、视频)编辑器
  3. c++17(28)-Makefile(1)
  4. 迭代器模式(Iterator)
  5. freebsd查询php5的版本,FreeBSD下查看各软件版本命令
  6. ubuntu 16.04 安装 google浏览器
  7. 未名 - markdown
  8. Laravel 下使用 FFmpeg 处理多媒体文件
  9. 自己总结出三种进入加密QQ空间的方法
  10. platform驱动和pci驱动的区别
  11. form 表单提交后,使页面不跳转
  12. 【RL】同策略(on-policy)与异策略(off-policy)
  13. Redis:集合SADD、SISMEMBER、SPOP、SRANDMEMBER、SREM、SMOVE、SCARD、SMEMBERS、SSCAN命令介绍
  14. 数据技术之Hadoop(HFDS文件系统)
  15. java如何保证mq一定被消费,RabbitMQ如何保证队列里的消息99.99%被消费?
  16. 上课用计算机的好处,多媒体课件的优点
  17. 批量合同生成软件/工具
  18. photoshop第五章:图像的调整
  19. sbm预测matlab,DEA ---关于SBM模型的选择
  20. IOS label设置多行显示并且文字在最上方显示

热门文章

  1. html实现画板的基本操作,JavaScript操作Canvas实现画板实例分析
  2. 计算机属性中没有端口,电脑设备管理器里没有显示COM2端口是什么原因
  3. 微信Java SDK开发文档
  4. 河南网上交新房契税打印带章完税证明教程
  5. java代码实现CGCS2000大地坐标系XY值转化为对应经纬度
  6. 扩展模块已停止工作怎么解决_菲尼克斯Phoenix控制器电源模块维修检测免费
  7. UNet++ 论文翻译
  8. python做语音信号处理
  9. FFT算法【初识】(一)
  10. 【ENSP模拟器】ENSP——VLAN的配置