博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Discuz!模板解析语法
阅读量:5303 次
发布时间:2019-06-14

本文共 1726 字,大约阅读时间需要 5 分钟。

PHP中使用template()函数显示已存在模板

  • 在Discuz!程序执行中可以通过 include template('模板文件夹/模板名称无后缀');的方式进行解析,前提是您使用的Discuz!程序已经包含了 ./source/function/function_core.php 的函数库

PHP格式的模板

[X2.5新增内容]

从 Discuz! X2.5 开始,模板文件支持 PHP 扩展名的格式,你可以创建例如 ./template/mytext/common/forum/discuz.php 文件,PHP 的模板文件中你只需在原有 HTM 的模板文件开头添加一行代码即可,如:

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

模板语法

变量输出

  • 输出一个变量的值,等同于php的 <?php echo $my_var;?>,花括号可以省略但不建议去掉。
{$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样式
  1. PHP端代码:
  • 此PHP代码省略了包含 class_core.php 以及初始化$_G变量,详细请查看:
  1. 模板代码:
这里是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模板代码如下
这是一个改变字体的实例
改变小号字改变为大号字

转载于:https://www.cnblogs.com/jiqing9006/p/3645196.html

你可能感兴趣的文章
Delphi中ListView类的用法
查看>>
多米诺骨牌
查看>>
Linq 学习(1) Group & Join--网摘
查看>>
asp.net 调用前台JS调用后台,后台掉前台JS
查看>>
Attribute(特性)与AOP
查看>>
苹果手表:大方向和谷歌一样,硬件分道扬镳
查看>>
Competing Consumers Pattern (竞争消费者模式)
查看>>
Android面试收集录15 Android Bitmap压缩策略
查看>>
PHP魔术方法之__call与__callStatic方法
查看>>
ubuntu 安装后的配置
查看>>
web前端之路,js的一些好书(摘自聂微东 )
查看>>
【模板】对拍程序
查看>>
【转】redo与undo
查看>>
解决升级系统导致的 curl: (48) An unknown option was passed in to libcurl
查看>>
Java Session 介绍;
查看>>
spoj TBATTLE 质因数分解+二分
查看>>
Django 模型层
查看>>
dedecms讲解-arc.listview.class.php分析,列表页展示
查看>>
Extjs6 经典版 combo下拉框数据的使用及动态传参
查看>>
【NodeJS】http-server.cmd
查看>>