模板的位置

模板解析函数是调用/source目录下的function_template.php文件中的parse_template函数来实现的。
解析过程并不复杂,主要是读取模板文件(.htm),用正则表达式替换标记为对应的PHP代码,最终生成一个标准的PHP文件,保存到模板缓存目录/data/tpl_cache/供后续使用。
uchome 模板在 template/default 目录里 ,修改模板后不会马上生效,需要去后台清空缓存文件或者手动去FTP删除data\tpl_cache 删除相关文件。
缓存文件在 data\tpl_cache 文件名是:template_模板目录名_模板文件名.php

后台的模板在admin/admin/tpl     解析后的文件同样在data\tpl_cache目录

template_tpl名_模板文件名.php

这里提供一种方法,可以使修改模板文件后,不用手动删除缓存的模板文件就能直接看到修改结果。方法为修改/source/function_common.php中的代码
if(!file_exists($objfile)) {
改为
if(!file_exists($objfile)||filemtime($objfile)
即可。
因为此方法增加了一次对文件系统的访问,一定程度上会影响性能,所以此处的修改只建议运用在调试服务器上。


模板的语法

1、调用其他模板
说明:将以模板header.htm来替换此处的代码
2、调用头像
3、调用广告
解析后的代码:
4、调用时间
模板代码
解析后的代码:
5、输出PHP代码
模板代码:
eval 就是执行php代码
解析后的代码:
说明:之间的是需要执行的PHP代码,要求语句完整。
6、调用变量
模板代码:
解析后的代码:
说明:{和}之间的是需要输出的变量。
7、选择输出逻辑
模板代码:
解析后的代码:

  • 加入群组


  • 发起话题

  • 说明:当然这里可以没有elseif,其语法有点类似VB,需要有结尾符。
    8、循环输出逻辑
    模板代码 :

    >

    [顶]
    [精]
    $value[subject] {$_SN[$value[uid]]}
    $value[replynum]/$value[viewnum] {$_SN[$value[lastauthorid]]}


    解析后的代码:
    $value) { ?>
    >

    [顶]
    [精]


    /



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