各位,没东西看~嘿嘿
关于Discuz的一些研究(1)
上一篇 /
下一篇 2007-08-05 23:52:00
/ 个人分类:技术文档
估计要写一个连载。因为内容比较多。
实际上我对discuz不是太了解,之前看了一下,因为dz比较不厚道地没有注释,基本上不太懂,后来写了新闻网的一个系统面对php的理解比以前深入很多了,所以才回头再去研究discuz。
下面说说为什么研究discuz。
原因很简单,只是为了编写discuz的插件。为什么要编写discuz插件?因为梦飞有需要。
dz的网站上面有这方面的教程,但是我觉得一开始他们就讲得太深,不利于初学者学习。如何利用现有的程序进行模板的嵌套是很重要的,但是他们基本上没讲。
我要讲的第一节是关于模板的,可能第二节还是。现在还没想好。呵呵
为了使用dz的模板机制,首先有个文件是一定要include的
require_once './include/common.inc.php';
这个是不能漏的,否则所有东西都用不了。
如果我要在一个test.php里面显示一个页面内容,怎么做呢?
通过研究dz的代码,规则如下:
首先它会读你的templateid,为了简单期间,我们都认为是默认模板算了。所有的模板都放在template的default文件夹里面。
然后,你通过下面的语句调用:
include template('test');
什么意思呢?就是读取template/default里面的test.htm,注意,只能是htm后缀的,这是函数规定的。你可以查看include/template.func.php文件,函数名是function parse_template($file, $templateid, $tpldir)。
其实这个htm文件仍然是可编程的,而不是固定不动的东西,大致语法有两种。
一种是if else模式,另外一种是loop模式。
例如:
<!--{if $discuz_uid}-->
已登录
<!--{else}-->
未登录
<!--{/if}-->
<!--{loop $qihoo_links['topics'] $url}-->
{$url}
<!--{/loop}-->
是不是很简洁有效?
更为有趣的是,还可以嵌套其他模板,用法如下:
{template login}
可以在页面中调用template/default/login.htm的模板,这种模板机制为程序员和美工的协作创造了很好的条件。
今天先讲到这里,我有新的发现会继续发上来。
导入论坛
收藏
分享给好友
推荐到圈子
管理
举报
TAG:
discuz
研究