Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

借助common.inc.php做任何事情

[复制链接]
选峰工作室 发表于 2009-12-24 02:21:42 | 显示全部楼层 |阅读模式
本帖最后由 选峰工作室 于 2009-12-24 02:23 编辑

DISCUZ里的include/common.inc.phpDZ的公共处理程序,很多DZ的程序都包含了它。

利用它,我们可以在它已有的基础上做自己想做的事情。

它定义了DISCUZ_ROOT 这个常量,用于表示论坛所在的文件目录。因为有时候我们不一定在论坛根目录写程序,所以用上这个常量会比较准确定位要引用的文件,在我们要引用文件时,一般也要写上这个。

它引进的include/global.func.php包含了DZ的一些公共函数。所以可以使用这些函数了。

它判断了当前用户是否是搜索引擎,用常量IS_ROBOT区分。利用此,我们可以做一些区分机器人与普通游客分别运行的操作。有时候我们不希望在搜索引擎访问的时候让执行速度变慢,或者我们不希望搜索引擎看到一些东西。

它对$_COOKIE$_POST$_GET进行了addslashes 并且进行了类似 extra效果的转换,所以,我们通常不必再使用类似 $_POST[uid] 这样的变量了。所以在做表单的处理的时候,我们就很轻松了,只需要在复制下表单名称再加个$就可以了。

它引进了论坛的配置文件。在那里我们可以得到论坛和UC相关的配置信息。比如,我们常常要使用到的数据库前缀 $tablepre

它把$_COOKIE里的本论坛专用的变量转换成了$_DCOOKIE,这样方便即区分了COOKIE前缀,又方便了写法。所以我们要使用DZdsetcookie$_DCOOKIE。有人没意识到这个使用了dsetcookie又没使用$_DCOOKIE的话,可能会得不到值,以为没效果。

它实例化了数据库连接类,我们只需要使用$db来进行数据库的操作,比如$db->query();。比如在做充值接口时,虽然充值程序放在了下级目录,但通过引用common.inc.php,依然可以使用$db来方便地进行更改用户金额,这就避免了要自己再去写数据库连接。

它还获得了当前的时间戳,$timestamp,这是经常用到的。它常常用于写进数据库来表示时间,用int 10,在开发中是常用的,比如用于记录某条数据的提交时间。

它还获得了$PHP_SELF, $BASESCRIPT, $BASEFILENAME, $boardurl这些有用的变量。其中$boardurl是很经常用到的,用于表示论坛的根目录的URL。在做JS的站外引用的时候,我们常常就要把$boardurl输出来。

它还获得了当前用户的IP地址,变量是$onlineip。这也是开发中经常要用到的。比如在做投票插件的时候,我们就要记录用户的IP

它启用了ob_start(),所以我们可以在后面使用类似ob_get_clean() 之类的函数来获取输出内容用于生成静态等等。

它获得了当前用户的UID和用户名,分别是 $discuz_uid$discuz_user。当然,还有$discuz_userss,不过这个并不常用,这个是未进行addslashes之前的。有些人说用户名是$discuz_userss,并在程序中使用这个,我觉得应该是不对的吧。

它还获得了用户的用户组$groupid,这个常用于判断用户权限,比如某插件只允许哪些用户组使用,就需要根据这个来判断。

common.inc.php里,$page$tid$fid$typeid都做了处理。所以,我们在别的程序里,一般就可以大胆的使用了,而没有必要再 intval 一下了。其中$page是我们经常要用到的,在写分页的时候,在分页的时候就没有必要再处理它了。刚接触DZ开发的人可能会自己另写一套分页函数,其实DZ有自己的分页函数multi()很好用的,完全可以利用,至于外观和page参数重复,可以输出后替换下和增加样式即可。

它还判断了版块的版主权限,$forum['ismoderator'],在版块列表页和内容主题页,甚至其它含有fidtid的页面,我们就可以用它来判断是否有管理权限了。

它运行了插件的全局包含和输出之前的页面嵌入类型插件。利用此,我们可以通过插件,在公共程序里全部运行或通过判断当前的CURSCRIPT 决定是否运行代码。

借助它,我们几乎可以做任何我们想做的事情,比如用它做一个单独页面,做一个功能模块。甚至可以不在论坛根目录而是在更深的目录使用它。我们想要用到的东西它几乎都有。当然,它还做了很多其它的有用的处理,因为和二次开发关系不大,这里不提。

使用它之前,仔细阅读它。

评分

1

查看全部评分

sonpyy 发表于 2009-12-30 02:47:45 | 显示全部楼层
回复

使用道具 举报

nightowl 发表于 2009-12-31 00:36:06 | 显示全部楼层
哦,好的。
回复

使用道具 举报

fictioner 发表于 2010-1-8 11:51:18 | 显示全部楼层
学习
回复

使用道具 举报

hitler521 发表于 2010-1-9 16:31:42 | 显示全部楼层
顶起!~~~~~~~~~~~~
回复

使用道具 举报

蚂蚁51007 发表于 2010-1-13 16:55:04 | 显示全部楼层
lz说的不错
回复

使用道具 举报

popuppp 发表于 2010-1-14 14:19:19 | 显示全部楼层
很详细
回复

使用道具 举报

紫檀 发表于 2010-1-16 15:51:36 | 显示全部楼层
说的不错
回复

使用道具 举报

huluchong 发表于 2010-1-20 10:32:02 | 显示全部楼层
学习!顶帖。
回复

使用道具 举报

心痛的苦咖啡 发表于 2010-1-20 14:39:03 | 显示全部楼层
顶起来     
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-24 05:59 , Processed in 0.030647 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表