前言
在设计模板之初,您需要详细了解一下模板解析语法,以进行模板制作实战。语法示例中,变量可根据实际情况使用,本处仅使用变量$my_var、数组$my_arr进行演示。PHP中使用template()函数显示已存在模板
在Discuz!程序执行中可以通过include template('模板文件夹/模板名称无后缀'); 的方式进行解析,前提是您使用的Discuz!程序已经包含了 ./source/function/function_core.php 的函数库。
PHP格式的模板
从 Discuz! X2.5 开始,模板文件支持 PHP 扩展名的格式,你可以创建例如 ./template/mytext/common/forum/discuz.php 文件。PHP 的模板文件中你只需在原有 HTM 的模板文件开头添加一行代码即可:模板语法
变量输出
输出一个变量的值,等同于php的<?php echo $my_var;?>,花括号可以省略但不建议去掉。
条件判断
通过if判断流程分支。如果写在HTML表单元素中,可以省去注释符使代码更清晰易读:循环输出
带有数组键的循环写法:模板嵌套
将被嵌套模板内容解析为PHP语句并合并入本模板中的写法。common/header 对应某个模板套系中的common目录的header模板文件:插件钩子
在模板中设立插件钩子,hook为关键词,意为将index_top定义为钩子:变量数组嵌套使用
条件判断或变量输出时用到:PHP解析
在模板中使用PHP语句可以通过eval进行:语言包使用
在模板中可以通过下面的代码来使用语言包中的某个值:综合示例
示例1:循环数组并根据奇偶行显示不同CSS样式
PHP端代码:示例2:结合风格常量与javascript动态改变字体大小
默认风格中,小号字体大小 SMFONTSIZE为0.83em,主题列表字体大小 THREADTITLEFONTSIZE为14px。在Discuz!X2中使用时,需要使用$_G['style']['SMFONTSIZE']和$_G['style']['THREADTITLEFONTSIZE']。
./template/mytest/forum/mytest 模板代码如下: