您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程
Discuz模板解析语法示例
盼山2025-07-08Discuz教程已有人查阅
导读在Discuz!程序执行中可以通过 include template('模板文件夹/模板名称无后缀');的方式进行解析,前提是您使用的Discuz!程序已经包含了 ./source/function/function_core.php 的函数库
<!--{eval echo autostart("2323232323"); }-->
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 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}-->
插件钩子在模板中设立插件钩子
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 NT整合
先按discuz!nt的用户指南,在windows2003下安装好论坛。并以admin进去,添加apikey等。然后用VS2008新建一项目,添加toolkit.dll和json的引用。
Discuz实现主题标题和正文同时显示的方法
本文实现功能:将主题标题和主题内容同时显示出来,如想直接看项目实现结果,可直接看解决问题的那个标题下的内容
Discuz实现NT跨站缓存同步的方法
在之前的文章中,提到了在DiscuzNT中进行缓存分层的概念。之前在产品中也实现了其中的构想,但该方案有一个问题,就是如果将产品进行分布式布署之后,如果某一站点发生数据变化时
Discuz实现NT缓存设计
作为一个社区类型软件,大并发支持和高效稳定运行永远是“硬道理”,而有效安全的使用缓存恰恰能起到事倍功半的效果。而.NET本身所提供的缓存机制又显得过于“单薄”,比如说订制
相关源码
-
(PC+WAP)绿色环保建筑设备通用行业pbootcms源码下载通过模块调整可适配园林景观、装配式建筑、绿色装修等生态建设相关领域。预制绿色建材展示、能耗模拟等专业模块,集成项目案例、环保工艺等建筑行业特色内容结构,测试数据包含LEED认证体系查看源码 -
快递物流公司pbootcms网站模板html响应式自适应源码下载基于HTML5+CSS3前沿技术开发,实现PC、平板、手机多端自适应。采用弹性布局与媒体查询技术,确保不同设备均有流畅视觉体验,企业形象统一。查看源码 -
(自适应)高端集团跨国公司产业联盟机构网站模板免费下载基于PbootCMS内核开发的集团级企业网站模板,采用响应式设计架构,确保在各类移动设备上获得浏览体验。通过模块化布局与简约大气的视觉风格,帮助集团企业高效展示组织架构、发展历程和业务矩阵,建立专业的企业形象窗口。查看源码 -
(响应式)wordpress模板VieuV4.5主题资讯自媒体博客源码Vieu主题专注于个人博客与企业展示场景,采用响应式设计确保在手机、电脑、平板等多设备上的展示。主题集成会员中心、投稿系统、内容保护等实用功能,满足现代博客网站的建设需求。查看源码 -
(自适应响应式)HTML5磁电机械设备蓝色营销型网站pbootcms模板本模板为磁电设备行业设计,采用蓝色营销风格,突出工业设备的专业性和技术感。模板结构清晰,能够有效展示磁电设备的技术参数、应用场景和企业实力,帮助客户快速了解产品特点和公司服务。查看源码 -
帝国CMS游戏应用APP推广下载站模板免费下载本模板为移动应用推广、手机游戏推广行业设计,集成H5游戏平台与APP下载功能,支持PC端与移动端自适应访问。专注于为应用开发商、游戏发行商提供专业的线上推广展示平台。查看源码
| 分享笔记 (共有 篇笔记) |
