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}-->
php中header是什么意思这个标签的异世是⼴告
后台添加了的⼴告都是现实在这个标签被解析后的代码中,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 的名字要以模块名加‘_’开始,
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论