您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程
Discuz模板语法介绍
向珊2025-06-25Discuz教程已有人查阅
导读PHP中使用template()函数显示已存在模板在Discuz!程序执行中可以通过 include template('模板文件夹/模板名称无后缀');的方式进行解析
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 echo $my_var;?>,花括号可以省略但不建议去掉。{$my_var}
条件判断
通过if判断流程分支
如果写在HTML表单元素中,可以省去使代码更清晰易读,如{if $my_var}xxx{/if}<!--{if $my_var}-->
任意html语句
任意html语句
带有数组键的循环写法
将被嵌套模板内容解析为PHP语句并合并入本模板中的写法
common/header 对应某个模板套系中的common目录的header.htm模板文件<!--{subtemplate common/header}-->
程序运行时include嵌套模板内容<!--{template common/header}-->
插件钩子
在模板中设立插件钩子
变量数组嵌套使用
条件判断或变量输出时用到<!--{if $my_arr[$my_var]}-->
在模板中使用PHP语句可以通过{eval}进行
...PHP语句...
在模板中可以通过下面的代码来使用语言包中的某个值{lang index_yesterday}
其中语言包在 ./source/language/目录下,以PHP数组形式存放插件模板和语言包的设计综合示例
综合示例题目1:php程序中创建一个数组并在模板中循环,并且根据模板显示奇数行输出不同的CSS样式
PHP端代码:
此PHP代码省略了包含 class_core.php 以及初始化$_G变量,详细请查看:<?php
默认风格中,小号字体大小 {SMFONTSIZE}为0.83em,主题列表字体大小 {THREADTITLEFONTSIZE}为14px,在Disucz!X2中使用时,需要使用
./template/mytest/forum/mytest.htm模板代码如下
[X2.5新增内容]
从 Discuz! X2.5 开始,模板文件支持 PHP 扩展名的格式,你可以创建例如 ./template/mytext/common/forum/discuz.php 文件,PHP 的模板文件中你只需在原有 HTM 的模板文件开头添加一行代码即可,如:
<?php exit;?>
<?php echo '你不能看此模板的内容';exit;?>
PHP 的模板文件的模板数据内容将从文件的第二行开始解析。PHP 和 HTM 模板文件同时存在时,会优先解析 PHP 模板文件模板语法变量输出输出一个变量的值,等同于php的 <?php echo $my_var;?>,花括号可以省略但不建议去掉。{$my_var}
条件判断
通过if判断流程分支
如果写在HTML表单元素中,可以省去使代码更清晰易读,如{if $my_var}xxx{/if}<!--{if $my_var}-->
任意html语句
<!--{/if}-->
带有多条件的if写法,可使用PHP常规判断中的按位运算符等<!--{if $my_var && ($my_var2 & 1 || $my_var3 == 3)}-->任意html语句
<!--{/if}-->
带有分支条件的if写法
<!--{if $my_var == 1}-->
变量为1
<!--{elseif $my_var == 2}-->
变量为2
<!--{else}-->
其他情况
<!--{/if}-->
循环输出带有数组键的循环写法
<!--{loop $my_arr $key $val}-->
循环输出的HTML语句
<!--{/loop}-->
没有数组键的循环写法
<!--{loop $my_arr $val}-->
模板嵌套将被嵌套模板内容解析为PHP语句并合并入本模板中的写法
common/header 对应某个模板套系中的common目录的header.htm模板文件<!--{subtemplate common/header}-->
程序运行时include嵌套模板内容<!--{template common/header}-->
插件钩子
在模板中设立插件钩子
index.php?title=%E6%8F%92%E4%BB%B6%E6%A8%A1%E6%9D%BF%E5%92%8C%E8%AF%AD%E8%A8%80%E5%8C%85%E7%9A%84%E8%AE%BE%E8%AE%A1
hook为关键词,意为将index_top定义为钩子<!--{hook/index_top}-->变量数组嵌套使用
条件判断或变量输出时用到<!--{if $my_arr[$my_var]}-->
<!--{if $my_arr[0]}-->
<!--{if $my_arr[$my_arr2[$my_var]]}-->
PHP解析在模板中使用PHP语句可以通过{eval}进行
<!--{eval $my_var = 1;}-->
<!--{eval echo $my_var;}-->
<!--{eval $my_arr = array(1, 2, 3);}-->
<!--{eval print_r($my_arr);}-->
<!--{eval output();}-->
<!--{eval exit();}-->
多行PHP解析(Discuz! X3 新增)<!--{eval}-->...PHP语句...
<!--{/eval}-->
语言包使用在模板中可以通过下面的代码来使用语言包中的某个值{lang index_yesterday}
其中语言包在 ./source/language/目录下,以PHP数组形式存放插件模板和语言包的设计综合示例
综合示例题目1:php程序中创建一个数组并在模板中循环,并且根据模板显示奇数行输出不同的CSS样式
PHP端代码:
此PHP代码省略了包含 class_core.php 以及初始化$_G变量,详细请查看:<?php
/*此处省略include class_core.php*/
$my_arr = array('one', 'two', 'three', 'four');
include template('forum/mytest'); //使用自定义模板套系中的forum目录的mytest.htm
?>
模板代码:
<!--{loop $my_arr $key $val}-->
<div {if $key % 2 == 1}style="background: #ccc;"{/if}>
这里是value值:
{$val}
</div>
<!--{/loop}-->
综合示例题目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模板代码如下
<!--{subtemplate common/header}-->
<div id="test1" style="font-size:{$_G['style']['FONTSIZE']};">
这是一个改变字体的实例
</div>
<span onclick="changefontsize('{$_G['style']['SMFONTSIZE']}');">改变小号字</span><span onclick="changefontsize('{$_G['style']['THREADTITLEFONTSIZE']}');">改变为大号字</span>
<script type="text/javascript">
function changefontsize(size) {
$('test1').style.fontSize = size;
}
</script>
<!--{subtemplate common/footer}-->
本文标签:
很赞哦! ()
上一篇:discuz数据表结构介绍
相关教程
图文教程
Discuz论坛搭建步骤方法教程
其实我想说的是这个网站集成环境搭建的方式有很多,可以直接在windows上下载一个xmapp等集成开发环境,效果也是一样的,当然这都是搭建本地论坛的环境。
Discuz模板自定义设计和个性化修改的方法
在互联网时代,个性化和定制化已经成为用户体验的重要组成部分。Discuz作为一个广泛使用的论坛系统,提供了强大的模板系统,允许用户对其进行自定义设计与个性化修改。
discuz!nt投票功能写法实例
可能要写一个投票系统,把discuz!net里面的代码放到这里来参考参考,感觉它的投票功能做的有点简单,数据库里面相关的就两个主从表,不过想想也可以理解
ubuntu搭建Discuz论坛的方法
ubuntu 需要安装 Apache2 ,使用 apt-get 安装 Apache2(安装好后,您可以通过访问实验室IP地址 http://192.168.0.1查看到 apache 界面,说明 apache2 安装成功):
相关源码
-
(PC+WAP)蓝色电缆桥架五金钢结构机械PbootCMS模板下载采用PC与WAP双端适配设计,满足桌面设备和移动端访问需求。专注服务于电缆桥架、钢结构及五金机械制造领域,通过结构化布局展示产品特性与技术参数,后台数据一体化管理提升内容维护效率。查看源码 -
(PC+WAP)生活资讯百科新闻门户类pbootcms网站模板为生活资讯、百科门户类企业打造的高性能网站模板,基于PbootCMS开源内核开发,采用HTML5响应式架构,PC与手机端实时数据同步,覆盖全终端用户浏览场景。查看源码 -
帝国cms7.5大型游戏资讯门户网站源码免费下载本模板基于帝国CMS7.5内核开发,为大型游戏资讯门户网站设计。模板自带响应式手机版,适配多种终端设备。内容架构针对游戏行业特点优化,支持游戏资讯、评测、攻略等内容类型的发布与管理。查看源码 -
帝国cms7.5手游评测资讯礼包合集游戏专区下载网站模板本模板基于帝国CMS系统开发,为手游门户网站设计。支持PC端与移动端同步生成HTML静态页面,内置多端同步生成功能。模板架构针对手业特点优化,满足APP下载、游戏资讯、攻略等内容发布需求。查看源码 -
帝国cms7.5女性护肤搭配美妆潮流网站源码带数据4.5G本模板专为女性美容护肤行业设计,提供美容护肤、发型设计、女性健康、时尚化妆、娱乐新闻、服饰搭配等女性潮流资讯内容展示。采用帝国CMS7.5开发,同步生成电脑端和手机端,满足用户对美容时尚信息的获取需求。查看源码 -
(PC+WAP)院校学院职业学校机构协会网站开源源码下载本模板基于PbootCMS系统开发,为高等院校、职业学校等教育机构设计,特别适合展示学校概况、院系设置、招生信息等内容。采用双端适配技术,确保在PC和移动设备上都能获得良好的浏览体验。查看源码
| 分享笔记 (共有 篇笔记) |
