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

if(!file_exists($objfile)){include_once(S_ROOT.’./source/function_template.php’);
parse_template($tpl);}

修改成:

//if(!file_exists($objfile)) {include_once(S_ROOT.’./source/function_template.php’);parse_template($tpl);
//}

这样修改模板后就不用到后台更新缓存了,改成这样的意思是无论是否存在缓存文件都将包含模板文件并生成新的缓存文件。

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>

解析后的代码:

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

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

7、选择输出逻辑

if标签和 else标签主要是判断标签,格式如下

<!—{if 条件}–>//Your code here…<!—{else}–>//Your code here…<!—{/if}–>

以上的条件可以是变量及合法的PHP函数及自定义函数。

模板代码:

<!--{if empty($mtag['ismember']) && $mtag['joinperm'] <2}--><li><ahref="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><ahref="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><ahref="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}--><ahref="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-dH: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><?phpif($value['displayorder']) { ?> [顶] <?php } ?><?php if($value['digest']){ ?> [精] <?php } ?><ahref="space.php?uid=<?=$value['uid']?>&do=thread&id=<?=$value['tid']?>"><?=$value['subject']?></a></td><td><ahref="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><?phpecho 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]"><imgsrc="<!--{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:

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

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

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

所有章节下载:http://download.csdn.net/source/3579636

文章摘自:http://wenku.baidu.com/view/ffd8a5c14028915f804dc2e0.html

转载于:https://www.cnblogs.com/liuensong/archive/2011/09/06/10140446.html

第七章:【UCHome二次开发】模板语法说明相关推荐

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

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

  2. TEC1401.Report开发技术总结 - 第七章 使用BI Publisher开发报表-创建一个简单的RTF模板(2/5)

    第七章   创建一个简单的RTF模板 安装好Oracle BI Publisher Desktop之后,可以使用Word中的BI Publisher插件来进行报表布局模板(RTF格式)设计. 1.   ...

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

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

  4. TFS二次开发系列:七、TFS二次开发的数据统计以PBI、Bug、Sprint等为例(一)

    在TFS二次开发中,我们可能会根据某一些情况对各个项目的PBI.BUG等工作项进行统计.在本文中将大略讲解如果进行这些数据统计. 一:连接TFS服务器,并且得到之后需要使用到的类方法. /// < ...

  5. 网站二次开发模板源码下载

    一天我无意发现一个特别好的的网站,它就是:http://www.aspku.com/,里面收集各种商业网站源码,非常利于我们程序员进行二次开发,大大缩短开发周期.今天的分享到此就结束了.谢谢大家

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

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

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

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

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

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

  9. 第十二章 Ambari二次开发之集成Alluxio

    1.Alluxio高可用部署 生产环境:使用具有高可用性的模式来运行Alluxio masters. 1.1.Alluxio架构 ​ Alluxio可以被分为三个部分:**masters.worker ...

最新文章

  1. 理解jQuery对象$.html
  2. nginx+keepalived高可用web架构
  3. 深度分享 | 世界顶级语音识别科学家黄学东博士CCL 2018主旨报告(附PPT)
  4. [自动化]Puppet服务安装和部署
  5. Little Sub and Johann
  6. 生产上oracle扩展表空间,oracle基于裸设备(raw device)扩充表空间
  7. oracle 增量_【干货分享】DMETL中的增量抽取初识
  8. 信息发展树标杆 智慧城市筑屏障
  9. 油猴(Tampermonkey)使用教程
  10. 什么是边缘计算网关?(边缘计算网关产品的特点?)
  11. PCAN-View如何保存报文?
  12. 华师大 OJ 3036
  13. c语言中小数乘整数,小数乘整数中的算法算理教学
  14. 微软的mak与kms区别
  15. 笔记本电脑连接无线网卡如何开热点
  16. 微信授权登录的多帐号问题
  17. 【 bzoj 4355 】 Play with sequence - 线段树乱搞
  18. MYSQL 数据库基础(三 流程函数的学习,多行函数相当于统计计算等等、group by的使用、goup by衍生出的having、排序关键字order by、升序ASC、降序DESC、模糊查询等)
  19. mysql8的load data_mysql8.0 使用LOAD DATA LOCAL INFILE 批量插入数据
  20. 【Hadoop】Hadoop正常启动,但是网页打不开

热门文章

  1. Uncaught (in promise) Error: timeout of 10000ms exceeded---SpringCloud Alibaba_若依微服务框架改造---工作笔记009
  2. 大数据之-Hadoop_环境搭建_JDK安装---大数据之hadoop工作笔记0017
  3. Netty工作笔记0054---EventLoop组件
  4. STM32工作笔记0096---用sprintf分配内存
  5. STM32工作笔记0035---按键输入实验--库函数
  6. C#.Net工作笔记009---c#中Yield Return语法的作用和好处
  7. robust scene text recognition with automatic rectification
  8. python多进程用不了_Python多进程相关的坑
  9. php 输出可以设置格式文件,PHP实现的文件直接输出下载
  10. 头像裁剪框html css,CSS3 clip-path实现的用户头像裁剪效果