Discuz 模版中的一些基本语法

1、Discuz 模版的解析流程

Discuz 模板的模块化很强,具有相同功能的模块基本上都已经统一管理了,所有的模版文件都放置在 ./template 目录下,并且 基本上都是在 ./source/module 下面的模块处理文件中被引入

一个模版文件在引入之前,通常会通过 ./source/module 下的相应模块处理程序,模版所要显示的数据,之后才会引入他要显示的模版文件,在程序文件中是这样引入模版的。

include template('forum/formdisplay');

 

以论团首页为例。展示模版的显示流程

论团首页是通过

./source/module/forum_index.php中的

include template('diy:forum/discuz:'.$gid);引入

找到核心文件function_core.php,在哪里我们能看到template函数

这个函数的主要作用就是对传入的模版文件进行条件判断,并检查是够更新缓存文件,至于具体的作用

./source/class/class_template.php 这个类文件,模版文件都要被他解析,然后写入缓存中,前台显示的也就是他解析过的缓存文件。

<!--{subtemplate common/header}-->

模版引入标签

<!--subtemplate-->后面的模版围巾啊通常都是被包含在其他模版文件中的子体。这样在解析模版的时候,程序就会判断<!--{subtemplate}-->所引入的模版会被再一次解析一遍然后再和入口模版拼合,组成一个完整的模版,也就是说,如果我们添加的模版是在别的模版中被调用的话,需要 <!--{subtemplate 模版名称}-->的方式引入进来

 

<!--{ad/headerbanner/wpa_h}-->

这个标签的异世是广告

后台添加了的广告都是现实在这个标签被解析后的代码中,ad 代表广告标签 headerbanner 为此广告的标识符wpa_h 为插入html后次广告的样式

<!--{if $_G['uid']}--><!--{/if}-->

判断标签,如果条件成立,那么包括在这个标签中的html 代码将会被显示

<!--{loop $catlist $key $cat}-->

<!--{/loop}-->

循环标签

<!--{eval $forum=$forumlist[$forumid];}-->

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

<!--{hook/index_header}-->

 

$_G['setting']['pluginhooks']['global_myitem_extra'];

hook 的名字要以模块名加‘_’开始,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值