【discuzX2】模板解析语法就template()函数分析



PHP 的模板文件的模板数据内容将从文件的第二行开始解析。PHP 和 HTM 模板文件同时存在时,会优先解析 PHP 模板文件
模板语法

变量输出
输出一个变量的值,等同于php的 ,花括号可以省略但不建议去掉。
{$my_var}
条件判断
通过if判断流程分支
如果写在HTML表单元素中,可以省去使代码更清晰易读,如{if $my_var}xxx{/if}

    任意html语句

带有多条件的if写法,可使用PHP常规判断中的按位运算符等

    任意html语句

带有分支条件的if写法

    变量为1

    变量为2

    其他情况

循环输出
带有数组键的循环写法

    循环输出的HTML语句

没有数组键的循环写法

模板嵌套
将被嵌套模板内容解析为PHP语句并合并入本模板中的写法
common/header 对应某个模板套系中的common目录的header.htm模板文件

程序运行时include嵌套模板内容

插件钩子
在模板中设立插件钩子 插件模板和语言包的设计
hook为关键词,意为将index_top定义为钩子

变量数组嵌套使用
条件判断或变量输出时用到



PHP解析
在模板中使用PHP语句可以通过{eval}进行






多行PHP解析(Discuz! X3 新增)

...PHP语句...

语言包使用
在模板中可以通过下面的代码来使用语言包中的某个值
{lang index_yesterday}
其中语言包在 ./source/language/目录下,以PHP数组形式存放
插件模板和语言包的设计

请参见:插件模板和语言包的设计
综合示例

综合示例题目1:php程序中创建一个数组并在模板中循环,并且根据模板显示奇数行输出不同的CSS样式
PHP端代码:
此PHP代码省略了包含 class_core.php 以及初始化$_G变量,详细请查看:

模板代码:
    
        
这里是value值:{$val}
综合示例题目2:结合风格常量与javascript,动态改变模板页面的字体大小,并引用默认模板的header和footer 默认风格中,小号字体大小 {SMFONTSIZE}为0.83em,主题列表字体大小 {THREADTITLEFONTSIZE}为14px,在Disucz!X2中使用时,需要使用$_G['style']['SMFONTSIZE']和$_G['style']['THREADTITLEFONTSIZE']。 $('test1')此写法是因为header中已经加载了common.js全局javascript脚本文件,可以通过简写来达到document.getElementById('test1')的效果 ./template/mytest/forum/mytest.htm模板代码如下
这是一个改变字体的实例
改变小号字改变为大号字 ?>

你可能感兴趣的:(【discuzx2,x3深入研究】)