LOFTER for ipad —— 让兴趣,更有趣

点击下载 关闭
Discuz!X模板中的一些基本语法
柠檬科技rocky 2020-01-11

许多friend对Discuz! X的模板都很感兴趣,尤其是Discuz! X独占的模板机制,信任大伙都异常希望可以看懂它。下面我讲解一下我常常用到的模板语法,希望大伙看完以后对Discuz! X的模板有1个详细的知道。


率先咱们要向大伙介绍的是Discuz! X的模板解析流程。


Discuz! X模板的模块化很强,拥有一样功能的模块基本上都已经一致管理了。全部的模板文件都是安排在./template目录下,并且基本上都是在./source/module下的模块处置文件中被引入的。


1个模板文件在引入之前,一般会通过./source/module下的响应模块处置程式,模板所要显现的数据,以后才会引入他要显现的模板文件,在程式文件中是这样引入模板的:


include template;


复制代码下面我就以discuz比较类型的论坛首页作为讲解,为大伙剖解一下这个模板的显现流程:


论坛首页是通过./source/module/forum_index.php 中的includetemplate;引入的。


下面咱们就来详细的看一看template是怎地奇异把dz的模板文件解析成咱们前台看到的html文件的,咱们找到函数的核心文件function_core.php,在那边咱们能看到template函数,这段代码很长,我就不再这里黏贴了。


这个函数的主要功能就是对传入的模板文件进行环境断定,并检查能否更新缓存文件。至于详细的功能,你能本人去看,我这里就不做详解了。


下面咱们主要关注的是./source/ class /class_template.php这个类文件。咱们的模板文件都是被他解析,然后写入缓存的。咱们前台显现的也都是他解析后来的缓存文件。


这里我只介绍几中比较常用的模板语法,与大伙协同学习一下。


1.


复制代码


在discuz的如果文件模板中,咱们一般都会看到形如这样的加载头部文件的方式。以前不太知道discuz模板机制的时候,也常常搞不清晰<!--{subtemplate }-->与<!--{templater}-->,后来看了看程式才明确。<!--{subtemplate }-->后头的模板文件一般都是被包罗在其他模板文件中的子体。这样在解析模板的时候,程式就会断定<!--{subtemplate }-->所引入的模板会被再一次解析一遍然后再与进口模板合并,构成1个完整的模板。也就是说,如果咱们增加的模板是在此外模板中被挪用的话咱们需要以<!--{subtemplate 模板称号}-->的方式引入进来。


2.


复制代码


论坛上也常常碰着有人问这个标签的寄义,这里我就告诉一下大伙,这个标签的意义是广告。咱们后台增加的广告都是显现在这个标签被解析后的代码中。ad代表广告标签headerbanner为此广告的标识符。Wp a_h为插入html后此广告的款式。


3.


复制代码


DiscuzX的断定标签,如果环境建立,那么包含在这个标签中的html代码将会被显现。示例中如果使用者的uid存在的话。这里面的代码就会被显现,如果为游者没有uid,那么对应的里面的html代码将不会再页面中显现出来,就算解析出来,也不会被显现。


而且if 后头的断定环境也能用表达式的计算成果作为值,进行断定。譬如



复制代码


这个标签的算是模板中最常用的标签了,他同样支持形如咱们php中常用的if{}else{},或者if{}elseif{}else{}.他们对应的标签discuz标签分别为:<!--{if 断定环境代码}--> 显现的html<!--{else}-->若果环境不建立显现的代码<!--{/if}-->与<!--{if 断定环境代码}--> 显现的html<!--{elseif 断定环境代码}-->若果环境不建立显现的代码<!--{else}-->显现的代码<!--{/if}-->


4.


复制代码


轮回标签,这是1个使用频次很高的标签,他会完成php中foreach的函数结果,对一组数组数据进行轮回出口。如果你在php中组装好了1个要用到的数组,那么loop将是您最好的显现标签。


5.


复制代码


以eval开始的标签,将直接将后头的代码作为php执行语句原样出口。


一般咱们常用的标签就这几种。其他的话一般都不太常用。如果你有兴趣能本人去考虑一下./source/ class /class_template.php中的解析函数:function


parse_template;这里面包罗了全部的标签,并且是怎么样被解析的。有兴趣的同窗能考虑一下。


推荐文章
评论(0)
联系我们|招贤纳士|移动客户端|风格模板|官方博客|侵权投诉 Reporting Infringements|未成年人有害信息举报 0571-89852053|涉企举报专区
网易公司版权所有 ©1997-2024  浙公网安备 33010802010186号 浙ICP备16011220号-11 增值电信业务经营许可证:浙B2-20160599
网络文化经营许可证: 浙网文[2022]1208-054号 自营经营者信息 工业和信息化部备案管理系统网站 12318全国文化市场举报网站
网信算备330108093980202220015号 网信算备330108093980204230011号
分享到
转载我的主页