第七章:【UCHome二次开发】模板语法说明
来源:互联网 发布:js 禁止a标签跳转 编辑:程序博客网 时间:2024/05/17 06:39
如何让系统每次自动更新缓存,免去每次修改模板后都要到后台更新缓存操作,记住,在解决完所有问题后,要在改回来,否则会大幅度提高服务器负担.
打开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- 第七章:【UCHome二次开发】模板语法说明
- 第八章:【UCHome二次开发】模板页面说明
- 【UCHome二次开发】UCHome模板语法…
- UCHome二次开发 模板基础语法
- UCHome二次开发 模板基础语法
- UCHOME的模板语法说明
- UCHome二次开发 模板语法使用调用范例
- 第九章:【UCHome二次开发】主要文件说明
- 第五章:【UCHome二次开发】模板解析
- 第十章:【UCHome二次开发】模板修改
- UCHome模板文件说明
- 第十四章:【UCHome二次开发】uchome通用方法
- 第二章:【UCHome二次开发】基础
- 第十二章:【UCHome二次开发】全局变量
- UCHOME二次开发
- 第六章:【UCHome二次开发】缓存机制解析
- 第十一章:【UCHome二次开发】功能修改
- uchome模板
- 我想我是适合独处的人
- Selenium测试环境搭建
- Maven 之setting.xml pom.xml
- Essbase和Cognos的对比
- 安天系统安全管理软件之便携化
- 第七章:【UCHome二次开发】模板语法说明
- 不能从const char *转换为LPCWSTR 经常碰到
- 读书笔记:少有人走的路
- S3C2440驱动篇—Linux平台设备驱动
- WebSite和WebApplicationd的区别
- rails 3总出现 axconfig port1 not active
- ASP.NET使用IHttpModule实现网站静态缓存
- SVN小记
- CSS IE6/7/8, Firefox, Safari, Chrome, Opera Hack使用简要归纳