各位,没东西看~嘿嘿

关于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} &nbsp;
<!--{/loop}-->

是不是很简洁有效?

更为有趣的是,还可以嵌套其他模板,用法如下:

{template login}

可以在页面中调用template/default/login.htm的模板,这种模板机制为程序员和美工的协作创造了很好的条件。

今天先讲到这里,我有新的发现会继续发上来。


TAG: discuz 研究

引用 删除   /   2007-09-11 12:59:00
流云师兄,好厉害啊~我完全看不懂~
流云扉语 引用 删除 飞逸流云   /   2007-08-06 00:10:00
补充一句

html里面的参数,比如$username之类的都可以被解析。好像上文的$url这样
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar