discuz 7.0 模式的灵活性之研究

本文深入探讨了Discuz! 论坛系统的内部结构和工作原理,包括全局变量的作用、关键文件common.inc.php的功能、URL对内核的影响、安全性措施、模板引擎的特点以及全局数组的使用等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近,我在帮客户处理一个discuz 推送到首页的插件。需要对DZ用户权限作深入了解,为此,找了会儿资料。认真体会, 对于DZ的流程及结构性更加佩服。

   统一让开发 一目了然。

    dz将所有的资料,后台设置 的内容,及一些常用的内容全部集成在一个数组中: $_DCACHE 这个数组非常强大的。

   关键的内核协调文件: common.inc.php
   require_once './include/common.inc.php';
   仅需要引入一个文件,就能够获得后台数据 ,用户信息,及一切常用函数

   URL对内核的二次影响。

   引入内核common.inc.php,许多人认为就是一个数据加载。其实是错误 的,当URL挂于GID FID TID时,内核的组件中都执行一次新的数据提取,免去了前台文件再次查询。比如版块设置,管理信息,用户信息。

   discuz其实是极力想放弃PHP 4的。
   模板引擎的编译中可以看得出来,仅仅支持短标签的执行方式,许多旧版本PHP应该会报错。

   discuz为什么不用框架 ?  
   试想想, 傻瓜模式最大的成功就是推广出去。 discuz虽然不是最优秀的执行代码 ,但决对是最容易学习 及理解的执行代码。 相比框架那种约束性,discuz更大的把灵活性发挥了出来。有人可以说框架也可以, 那还真要问问,假如我不要单点入口,怎么弄?

   discuz对于变量
   认真分析,会发现他并没有认真把变量类型给处理好。 比如UID adminid 这些int类型,在整个discuz中基本上全部是string类型。 也许是我个人的习惯, 我不善长在代码中写== 而写的是===
   
    discuz文件安全。
    这是最容易理解的了,前台的文件中定义一个常量: define('CURSCRIPT', 'index');  然后在目录中的文件中判断一下常量有没有定义。 就定义,这个类文件仅可以在定义了CURSCRIPT常量的前台文件中使用。 当然, 模板文件的暴露,多少产生了一定危险。 所以discuz也经常提到,把默认模板目录改改名字。

    提示信息及二次提交。
   提示信息是个友好的函数,仅仅是调用了showmessage()函数,就跳到了指定的模板上显示。 这也是防止二次提交的好办法, 跳转到其它页,很安全吧。

    discuz模板引擎。
    discuz做得比phpwind好,phpwind转来转去,仍然跑回了传统的原始写法上了,它甚至不知道失败同样会在妈妈时代发生。  discuz 拥有着最简单的模板语句 写法,{$str} {$str[abc]}    {if $on === 1} 值得一提的是它的循环 语 句。smatry的循环是非常完美的,for while foreach 全部都有。  但discuz不必这样劳师动众,仅应用了foreach的执行方式,写法也简单 {loop $array $key $val} 基本上所有的循环模式都可以写出来。接着就是eval 的灵活写法,在这点上,我被一位同事非议过,他说我是个不安全的程序员 ,在他认为 <?php  ?> 执行在模板引擎上,就是危险。 {eval echo 'php';} 可以写任何PHP语句。 为了国家的和平,建议你不要写危险的代码在eval 中, 呵呵。

    discuz的功能块。
   功能块的实现最明显就是后台设置了,admin.php 基本上这个文件是中心,然后调用admin目录中的功能块。 好像是通过action=文件名来调用的。 写法就简单了:
if(is_file(DISCUZ_ROOT."./admin/$action.php"))
require_once DISCUZ_ROOT."./admin/$action.php";
这样一来,功能块中的代码就全部实现了,相互的功能块不会影响。这种模式似乎是框架的模式,如果框架不附带方法,那它的模式就是这样,别想得太复杂了。 这种模式好,管理起来非常方便,代码写起来比较好玩。

 

《 DZ 全局变量及说明 》


  • 变量名称                           名称说明

    [A]字母组
  • $action.................................................................................操作
  • $adminid...............................................................................管理级别
  • $adminemail...........................................................................config.inc.php里面设置的那个
  • $adminid...............................................................................管理组id(1管理员2超版3普版-1特殊)
  • $adminpaccess.......................................................................不详
  • $allowanonymous...................................................................是否允许匿名
  • $allowavatar..........................................................................是否允许使用头像
  • $allowbanip...........................................................................是否允许ban ip
  • $allowbanuser.......................................................................是否允许ban用户
  • $allowviewip.........................................................................是否允许查看IP
  • $allowgetattach.....................................................................是否允许下载附件
  • $allowpostannounce...............................................................是否允许发公告
  • $allowcensorword..................................................................是否允许设置词语过滤(主观臆测)
  • $allow..................................................................................反正就是权限的全局变量,等回在整理
  • $attahdir..............................................................................附件上传目录(绝对)
  • $attachextsions.....................................................................允许的附件扩展名(应该是)
  • $attachimgpost.....................................................................帖子中是否显示图片附件
  • $attachrefcheck....................................................................下载附件是否来路检查
  • $attachsave..........................................................................附件保存方式
  • $attachurl.............................................................................附件上传目录(相对)
  • $attackevasive.......................................................................config.inc.php中设置,防DDOS攻击设置,详细见该文件
  • $authkey..............................................................................(暂时见 #26解释)
  • $avatarshow_license..............................................................天下秀license
  • $avatarshowdefault...............................................................系统管理中显示默认形象设置
  • $avatarshowheight................................................................系统管理中头像最大高度
  • $avatarshowwidth.................................................................系统管理的头像宽度
  • $avatarshowid.......................................................................用户头像所对应用户的 UID
  • $archiverstatus......................................................................启用 Archiver
  • $attachrefcheck....................................................................下载附件来路检查
  • $avatarshowstatus.................................................................关闭天下秀
  • $allowvisit.............................................................................允许访问
  • $allowpost............................................................................允许发帖
  • $allowreply............................................................................允许回复
  • $allowpostpoll........................................................................允许发投票
  • $allowdirectpost.....................................................................允许直接发帖
  • $allowgetattach.....................................................................允许查看附件
  • $allowpostattach....................................................................允许上传附件
  • $allowvote............................................................................允许投票
  • $allowmultigroups...................................................................允许加入/离开公众用户组
  • $allowsearch..........................................................................允许搜索
  • $allowavatar...........................................................................允许使用头像
  • $allowcstatus.........................................................................允许使用自定义头衔
  • $allowuseblog.........................................................................允许使用BLOG
  • $allowinvisible.........................................................................允许隐身
  • $allowtransfer........................................................................允许积分转账
  • $allowsetreadperm..................................................................允许设置帖子阅读权限
  • $allowsetattachperm...............................................................允许设置附件阅读权限
  • $allowhidecode.......................................................................允许使用HIDE
  • $allowhtml..............................................................................允许使用HTML
  • $allowcusbbcode.....................................................................允许使用自定义BBCODE
  • $allowanonymous....................................................................允许匿名
  • $allownickname...................................................................... 允许用昵称
  • $allowsigbbcode......................................................................允许签名用BBCODE
  • $allowsigimgcode.....................................................................允许签名用IMG
  • $allowviewpro.........................................................................允许看个人信息
  • $allowviewstats.......................................................................允许看统计
  • $attachextensions....................................................................附件允许拓展名
  • $adminemail............................................................................论坛系统 Email
  • $attachdir...............................................................................附件保存位置
  • $attachurl...............................................................................附件路径 URL 地址
  • $attackevasive........................................................................防护大量正常请求造成的拒绝服务攻击

    [B]字母组
  • $bbname..............................................................................论坛名
  • $boardurl..............................................................................论坛地址
  • {$boardurl}forumdisplay?fid=$fid..............................................版块地址
  • {$boardurl}viewthread.php?tid=$tid.........................................帖子地址
  • $bdaystatus..........................................................................发送生日邮件
  • $bannedmessages..................................................................禁言是否显示“该用户已经被屏蔽”的信息
  • $bbclosed.............................................................................是否关闭论坛
  • $bbinsert..............................................................................是否用BBCODE代码
  • $bbrules................................................................................论坛规则
  • $bbrulestxt............................................................................论坛规则是否允许使用HTML
  • $boardlicensed.......................................................................显示论坛授权信息

    [C]字母组
  • $credits................................................................................积分
  • $censoremail.........................................................................启用EMAIL审核
  • $censoruser..........................................................................启用用户审核
  • $closedreason........................................................................论坛关闭显示的信息
  • $creditsformula......................................................................积分公式
  • $creditsformulaexp..................................................................还是公式?
  • $creditsnotify.........................................................................启用的拓展积分
  • $creditspolicy.........................................................................积分策略
  • $creditstax.............................................................................积分交易手续费比率
  • $creditstrans..........................................................................交易积分设置
  • $custombackup......................................................................?未知
  • $cookiedomain........................................................................cookie 作用域
  • $cookiepath............................................................................cookie 作用路径

    [D]字母组
  • $db......................................................................................数据库操作类
  • $discuz_user $discuz_userss.....................................................当前用户名
  • $discuz_uid...........................................................................当前uid
  • $discuz_pw...........................................................................当前用户密码的 MD5
  • $discuz_secques....................................................................当前用户安全提问信息
  • $dateformat..........................................................................用户的日期格式
  • $delayviewcount....................................................................点击数延迟更新
  • $debug................................................................................显示程序运行信息
  • $dotfolders...........................................................................本人发起或回复的主题显示加点图标
  • $dupkarmarate......................................................................允许重复评分
  • $digest.................................................................................精华
  • $dotfolders...........................................................................是否将当前用户的主题加点
  • $delayviewcount....................................................................浏览延迟
  • $deletereason.......................................................................删除理由
  • $doublee..............................................................................允许同一 Email 注册不同用户
  • $dupkarmarate......................................................................允许重复评分
  • $dbhost...............................................................................数据库服务器
  • $dbuser...............................................................................数据库用户名
  • $dbpw.................................................................................数据库密码
  • $dbname..............................................................................数据库名
  • $dbreport.............................................................................是否发送数据库错误报告
  • $database.............................................................................MySQL 版本设置
  • $dbcharset............................................................................MySQL 字符集

    [E]字母组
  • $extcredits............................................................................扩展积分信息(array)
  • $extcredits............................................................................拓展积分
  • $exchangemincredits...............................................................兑换最低余额
  • $edittimelimit..........................................................................编辑帖子限制时间
  • $editedby..............................................................................显示最后编辑信息
  • $errorreport...........................................................................是否报告 PHP 错误

    [F]字母组
  • $forum[name]........................................................................版块名字
  • $fastpost...............................................................................快速发帖
  • $fullmytopics..........................................................................我的话题全文搜索
  • $forumjump...........................................................................显示论坛跳转菜单
  • $floodctrl...............................................................................发帖灌水预防(秒)
  • $fastpost...............................................................................显示快速发表
  • $forcesecques..........................................................管理人员必须设置安全提问才能进入系统设置

    [G]字母组
  • $gzipcompress........................................................................页面 Gzip 压缩
  • $globalstick............................................................................启用全局置顶
  • $groupid................................................................................用户组ID

    [H]字母组
  • $hideprivate...........................................................................隐藏无权访问的论坛
  • $hottopic..............................................................................热门主题帖数
  • $hideprivate...........................................................................隐藏无权访问的论坛
  • $headercharset......................................................................强制设置字符集,只乱码时使用

    [I]字母组
  • $ipaccess...............................................................................IP允许访问后台权限
  • $ipregctrl...............................................................................IP注册控制

    [J]字母组
  • $jscachelifeJS.........................................................................数据缓存时间(秒)
  • $jsrefdomainsJS......................................................................来路限制
  • $jsstatus................................................................................启用JS

    [K]字母组
  • $keyword...............................................................................关键字
  • $karmaratelimit........................................................................评分时间限制(小时):

    [L]字母组
  • $loadctrl................................................................................系统负载控制
  • $losslessdel.............................................................................删帖不减积分最大天数
  • $loadctrl.................................................................................负载控制

    [N]字母组
  • $navtitle................................................................................标题
  • $navigation............................................................................描述
  • $nocacheheaders....................................................................禁止浏览器缓冲
  • $newgroupid..........................................................................新用户组别
  • $newsletter............................................................................?未知
  • $newbiespan..........................................................................新手见习时间

    [M]字母组
  • $memberperpage....................................................................每页显示会员数
  • $modworkstatus......................................................................论坛管理工作统计
  • $maxonlines............................................................................最大在线人数
  • $maxspm60............................................................................秒最大搜索次数
  • $maxsearchresults...................................................................最大搜索结果
  • $maxsmilies最大单一 Smilies.......................................................解析次数
  • $membermaxpages..................................................................用户列表最大页数
  • $memliststatus........................................................................允许查看会员列表
  • $maxbdays.............................................................................首页显示生日
  • $modworkstatus......................................................................启用管理统计
  • $modreasons...........................................................................管理理由
  • $modratelimit...........................................................................版主评分限制
  • $moddisplay.............................................................................版主显示方式
  • $minpostsize............................................................................最小字数
  • $memliststatus.........................................................................启用会员列表查看
  • $memberperpage.....................................................................会员列表每页显示会员
  • $membermaxpages...................................................................会员列表最大页数
  • $maxthreadads.........................................................................主题广告最大数目
  • $maxspm.................................................................................60 秒最大搜索次数
  • $maxsmilies...............................................................................同一SMILES最大解析数
  • $maxsigrows.............................................................................最大签名高度
  • $maxsearchresults......................................................................最大搜索结果
  • $maxpostsize.............................................................................帖子最大字数
  • $maxpolloptions.........................................................................投票最大选项数
  • $maxonlines..............................................................................最大在线人数
  • $maxmodworksmonths...............................................................管理记录保留最长时间
  • $maxincperthread......................................................................单主题最高收入
  • $maxchargespan........................................................................单主题最高出售时限(小时):
  • $maxprice.................................................................................最大售价
  • $maxattachsize..........................................................................最大附件尺寸
  • $maxsizeperday..........................................................................一天最大附件尺寸
  • $maxpmnum..............................................................................最大购买天数

    [O]字母组
  • $onlineip.................................................................................用户 IP
  • $oltimespan.............................................................................用户在线时间更新时长(分钟)
  • $onlinehold.............................................................................在线保持时间

    [P]字母组
  • $post[authortitle].....................................................................用户组
  • $ppp......................................................................................每页显示贴数
  • $posts....................................................................................帖数
  • $postperday............................................................................平均每日的发帖
  • $pconnect..............................................................................数据库持久连接

    [R]字母组
  • $rssstatus................................................................................启用 RSS
  • $rewritestatus..........................................................................URL 静态化
  • $regfloodctrl.............................................................................24 小时注册尝试次数限制
  • $reportpost..............................................................................允许向版主报告帖子
  • $readaccess..............................................................................关系到阅读权限
  • $rewritestatus...........................................................................静态启用规律
  • $reportpost..............................................................................启用报告
  • $regverify.................................................................................注册审核启用
  • $regstatus................................................................................允许注册
  • $regfloodctrl..............................................................................24 小时注册尝试次数限制
  • $regctrl.....................................................................................IP 注册间隔限制(小时)
  • $reasonpm.................................................................................PM强制理由
  • $raterange.................................................................................评分范围

    [S]字母组
  • $styleid..................................................................................当前风格的 ID
  • $stylejump..............................................................................显示风格下拉菜单
  • $sessionexists..........................................................................是否更新 sessions
  • $statstatus..............................................................................使用论坛流量统计
  • $statscachelife.........................................................................统计系统缓存时间
  • $seccodestatus........................................................................启用验证码(安全)
  • $searchctrl...............................................................................搜索时间限制(秒)
  • $subforumsindex......................................................................首页显示论坛的下级子论坛
  • $stylejump...............................................................................风格跳转菜单
  • $statstatus..............................................................................启用统计
  • $statscachelife..........................................................................统计更新时间(分钟)
  • $starthreshold..........................................................................星星升级数
  • $smileyinsert.............................................................................启用 SMILES
  • $smcols....................................................................................一行显示 SMILES 个数
  • $showemail..............................................................................显示 EMAIL
  • $seokeywords..........................................................................关键字
  • $seodescription.........................................................................头部描述
  • $seccodestatus........................................................................验证码启用
  • $searchctrl...............................................................................搜索控制时间
  • $searchbanperiods.....................................................................禁止全文搜索时间段

    [T]字母组
  • $tablepre................................................................................表前缀
  • $timestamp.............................................................................时间信息
  • $timeformat............................................................................用户的时间格式
  • $timeoffset.............................................................................用户的时差
  • $thread[author]......................................................................作者
  • $thread[dateline].....................................................................时间
  • $thread[replies].......................................................................评论次数
  • $thread[views]........................................................................查看次数
  • $thread[subject].....................................................................帖子名称
  • $tpp......................................................................................每页显示主题数
  • $threadmaxpages....................................................................主题列表最大页数
  • $transsidstatus........................................................................启用 URL 传递 sid
  • $transfermincredits...................................................................转账最低余额
  • $topicperpage.........................................................................每页主题
  • $threadmaxpages.....................................................................主题列表最大页数
  • $tablepre................................................................................表名前缀
  • $tplrefresh..............................................................................模板自动刷新开关

    [U]字母组
  • $userstatusby..........................................................................用户组头衔衡量标准

    [V]字母组
  • $visitedforums..........................................................................显示最近访问论坛数量
  • $vtonlinestatus.........................................................................帖子中显示作者状态
  • $version...................................................................................当前的版本
  • $visitbanperiods.........................................................................禁止访问时间段

    [W]字母组
  • $welcomemsg..........................................................................禁止自动向新注册用户发送欢迎短消息
  • $whosonlinestatus....................................................................显示在线用户
  • $wapstatus..............................................................................启用 WAP
  • $watermarkquality.....................................................................水印透明度
  • $whosonlinestatus.....................................................................在线列表显示方式
  • $welcomemsgtxt.......................................................................欢迎短信息内容
  • $welcomemsg...........................................................................启用欢迎短信息
  • $watermarkstatus......................................................................启用水印
  • $watermarktrans........................................................................水印融合度
  • $waptpp...................................................................................WAP浏览页数
  • $wapstatus...............................................................................启用WAP
  • $wapppp...................................................................................WAP浏览显示主题数
  • $wapmps...................................................................................WAP 页最大长度
  • $wapdateformat.........................................................................WAP时间格式
  • $wapcharset..............................................................................WAP字符设定

 

《 DZ 全局常量及说明 》




  • 变量名称                           名称说明
  • IN_DISCUZ..............................................................................是否在论坛里
  • DISCUZ_ROOT.........................................................................路径
  • CURSCRIPT..............................................................................某些页面自定义
  • FORMHASH...............................................................................随机串

 

《 DZ 全局数组 及说明 》




  • 变量名称                           名称说明
    [_]字符组
  • $_DCACHE。。。。。。。。。。。。。。。。。。。。。。。。 cache数组
  • $_DPLUGIN。。。。。。。。。。。。。。。。。。。。。。。。plugins cache数组 (要预先require相关cache文件)

    [A]字母组
  • $advlist..............................................................................存储广告信息(头部广告等等)

    [C]字母组
  • $creditspolicy......................................................................存储积分策略

    [E]字母组
  • $extcredits.........................................................................扩展积分信息

    [F]字母组
  • $forum...............................................................................看名字是存储版面信息

    [G]字母组


  • [H]字母组
  • $hooks................................................................................钩子

    [I]字母组


  • [J]字母组


  • [K]字母组


  • [L]字母组


  • [N]字母组


  • [M]字母组
  • $modreasons.....................................................................管理操作时候的默认理由
  • $mtime.............................................................................精确的时间

    [O]字母组


  • [P]字母组
  • $plugins.............................................................................前台插件列表

    [Q]字母组
  • $qihoo_links........................................................................跟qihoo有关

    [R]字母组
  • $raterange..........................................................................评分功能中控制最大值和最小值

    [S]字母组


  • [T]字母组
  • $timenow = array............................('timeoffset' => '+8','time' =>'2006-6-30 06:22 PM');好用吧
  • $thread['password']..............................................................密码

    [U]字母组


  • [V]字母组


  • [W]字母组


  • [X]字母组


  • [Y]字母组


  • [Z]字母组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值