爱享技术分享论坛

 找回密码
 立即注册
搜索
查看: 2001|回复: 0

[PHP] Discuz X3.2源码解析 $_G变量

[复制链接]

704

主题

714

帖子

7239

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7239
发表于 2018-9-26 18:07:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
  • $_G定义在discuz_application::_init_env()函数中。是一个array对象。
    $_G里面保存了许多预处理信息,缓存了很多配置,可以提供Discuz的性能。








  • 2

    系统全局变量
    $_G['uid'] => 当前登录UID
    $_G['username'] => 当前登录用户名
    $_G['adminid'] => 当前登录ID管理组ID
    $_G['groupid'] => 当前登录ID用户组ID

    $_G['cookie'] => 客户端cookie
    $_G['formhash'] => 当前登录ID的【FORMHASH】 主要用于表单提交
    $_G['timestamp'] => 当前活动时间
    $_G['starttime'] => 1317042440.3242
    $_G['clientip'] => 当前访问者IP地址
    $_G['referer'] => 当前请求的地址,主要用户表单提交
    $_G['charset'] => 程序编码
    $_G['PHP_SELF'] => 当前访问页面的相对地址
    $_G['siteurl'] => 程序访问地址
    $_G['siteroot'] => 程序所在域名的相对目录
    $_G['fid'] => 当前版块id【主题列表页、帖子页】出现
    $_G['tid'] => 当前帖子ID【帖子页】出现
    $_G['basescript'] => 当前页面所在频道
    $_G['basefilename'] => 当前页面php文件名
    $_G['staticurl'] => 程序附件目录
    $_G['mod'] => 当前页面的MOD值【例如:forum.php?mod=xxx】
    $_G['inajax'] => 当前ajax请求的值【无-0 有-1】
    $_G['page'] => 当前分页ID
    $_G['tpp'] => 当前分页每页显示数量
    $_G['seokeywords'] => 当前页面seo关键词
    $_G['seodescription'] => 当前页面seo介绍
    $_G['timenow'] => Array
    (
    [time] => 2011-9-26 21:07 当前服务器时间
    [offset] => +8 当前服务器时区
    )
    $_G['config'] => Array(
        $_G['config'][db] => Array(
            $_G['config'][db][1] => Array(
                $_G['config'][db][1][dbhost] => localhost 数据库连接地址
                $_G['config'][db][1][dbuser] => root 数据库用户名
                $_G['config'][db][1][dbpw] => 123456 数据库密码
                $_G['config'][db][1][dbcharset] => utf8 数据库编码
                $_G['config'][db][1][pconnect] => 0
                $_G['config'][db][1][dbname] => dxutf 数据库名
                $_G['config'][db][1][tablepre] => pre_ 数据表前缀
            )
        )
    )






  • 3

    全局后台各项设置

    $_G['setting'][sitename] => 全局-站点信息-网站名称

    $_G['setting'][siteurl] => 全局-站点信息-网站URL

    $_G['setting'][regname] => 全局-注册访问-注册-注册地址

    $_G['setting'][reglinkname] => 全局-注册访问-注册-注册链接文字

    $_G['setting'][regverify] => 全局-注册访问-注册-新用户注册验证

    $_G['setting'][icp] => 全局-站点信息-网站备案信息代码

    $_G['setting'][imagelib] => 全局-上传设置-基本设置-图片处理库类型

    $_G['setting'][extcredits] => 积分情况 自行打印

    $_G['setting'][creditsformula] => 全局-积分设置-基本设置-总积分计算公式

    $_G['setting'][cacheindexlife] => 全局-性能优化-论坛页面缓存设置-缓存论坛首页有效期
    $_G['setting'][cachethreaddir] => 全局-性能优化-论坛页面缓存设置-缓存目录

    $_G['setting'][cachethreadlife] => 全局-性能优化-论坛页面缓存设置-缓存帖子有效期

    $_G['setting'][bbrulestxt] => 全局-注册访问-注册-网站服务条款

    $_G['setting'][bbname] => 全局-站点信息-站点名称

    $_G['setting'][attachurl] => 全局-上传设置-基本设置-本地附件URL地址

    $_G['setting'][attachdir] => 全局-上传设置-基本设置-本地附件保存位置

    $_G['setting'][anonymoustext] => 界面-界面设置-全局-匿名用户的昵称

    $_G['setting'][threadsticky] => 界面-界面设置-主题列表-置顶主题的标识

    $_G['setting'][defaultindex] => 默认首页文件名forum.php

    $_G['setting'][verify] => 用户-认证设置

    $_G['setting'][rewriterule] => 后台伪静态规则情况

    $_G['setting'][ucenterurl] => UCenter地址

    $_G['setting'][plugins] => 后台插件设置与启用情况

    $_G['setting'][navlogos] => 后台界面设置-导航设置-内置导航的logo组

    $_G['setting'][navmn] => 后台设置的导航情况,主要用于导航判断
    $_G['setting'][navs] => 页头导航数组,可参考此数组进行页头导航重写

    $_G['setting'][footernavs] => 页尾导航

    $_G['setting'][spacenavs] => 家园模块左侧导航

    $_G['setting'][mynavs] => 页头导航右边快捷导航按钮内容

    $_G['setting'][topnavs] => 页头顶部导航内容

    $_G['setting'][forumpicstyle] => Array 版块主题封面
    (
    $_G['setting'][forumpicstyle][thumbwidth] => 主题封面宽度
    $_G['setting'][forumpicstyle][thumbheight] => 主题封面高度
    )

    $_G['setting'][activityfield] => 全局-站点功能-活动主题-发起者必填信息

    $_G['setting'][activityextnum] => 全局-站点功能-活动主题-扩展资料项数量

    $_G['setting'][activitypp] => 全局-站点功能-活动主题-用户列表每页显示参与活动的人数

    $_G['setting'][activitycredit] => 全局-站点功能-活动主题-使用积分

    $_G['setting'][activitytype] => 全局-站点功能-活动主题-内置类型

    $_G['setting'][adminemail] => 全局-站点信息-管理员邮箱






  • 4

    全局当前登录者信息
    $_G['member'] => Array 当前登录用户个人信息
    (
    $_G['member'][uid] => UID
    $_G['member'][email] => 邮箱地址
    $_G['member'][username] => 用户名
    $_G['member'][password] => 经过MD5后的密码(别乱输出!!!切记)$_G['member'][status] => 用户是否已经删除
    $_G['member'][emailstatus] => 邮箱验证状态 0未验证 1验证通过
    $_G['member'][avatarstatus] => 头像上传状态 0未上传 1已上传
    $_G['member'][videophotostatus] => 视频认证 0未认证 1已认证
    $_G['member'][adminid] => 所在管理组ID
    $_G['member'][groupid] => 所在用户组ID
    $_G['member'][groupexpiry] => 所在用户组有效期
    $_G['member'][extgroupids] => 扩展用户组
    $_G['member'][regdate] => 注册时间
    $_G['member'][credits] => 214 现有总积分
    $_G['member'][notifysound] => 短消息声音
    $_G['member'][timeoffset] => 所在时区
    $_G['member'][newpm] => 新短消息数量
    $_G['member'][newprompt] => 新提醒数量
    $_G['member'][accessmasks] => 这个貌似访问权限,不确定
    $_G['member'][allowadmincp] => 是否拥有管理面板权限 0否 1是
    $_G['member'][onlyacceptfriendpm] => 是否只接受好友短消息 0否 1是
    $_G['member'][conisbind] => 是否绑定QQ 0否 1是
    $_G['member'][lastvisit] => 上次访问时间
    );






  • 5

    风格变量
    $_G['style'] => Array(
    $_G['style'][styleid] => 当前风格ID
    $_G['style'][name] => 当前风格名
    $_G['style'][templateid] => 当前模板体系
    $_G['style'][tpldir] => 当前模板目录
    $_G['style'][menuhoverbgcolor] => 导航菜单高亮背景颜色
    $_G['style'][lightlink] => 浅色链接颜色
    $_G['style'][floatbgcolor] => 弹出窗口背景属性
    $_G['style'][dropmenubgcolor] => 下拉菜单背景属性$_G['style'][floatmaskbgcolor] => 弹出窗口边框颜色属性
    $_G['style'][dropmenuborder] => 下拉菜单边框色
    $_G['style'][specialbg] => 彩色区域背景色(帖子用户信息栏、需强调的表头等)
    $_G['style'][specialborder] => 彩色区域边框
    $_G['style'][commonbg] => 通用显示区域背景颜色
    $_G['style'][commonborder] => 通用边框颜色
    $_G['style'][inputbg] => 输入框背景色
    $_G['style'][inputborderdarkcolor] => 输入框边框深色
    $_G['style'][headerbgcolor] => 页头背景
    $_G['style'][headerborder] => 页头分割线高度
    $_G['style'][sidebgcolor] => 家园侧边背景
    $_G['style'][msgfontsize] => 帖子内容字号
    $_G['style'][bgcolor] => 页面背景
    $_G['style'][noticetext] => 提示信息颜色
    $_G['style'][highlightlink] => 高亮链接颜色
    $_G['style'][link] => 链接文字颜色
    $_G['style'][lighttext] => 浅色文字
    $_G['style'][midtext] => 中等文本颜色
    $_G['style'][tabletext] => 普通文本颜色
    $_G['style'][smfontsize] => 小号字体大小
    $_G['style'][threadtitlefont] => 主题列表字体
    $_G['style'][threadtitlefontsize] => 主题列表字体大小
    $_G['style'][smfont] => 小号字体
    $_G['style'][titlebgcolor] => 版块列表标题字体颜色$_G['style'][fontsize] => 正常字体大小
    $_G['style'][font] => 正常字体
    $_G['style'][styleimgdir] => 扩展图片目录
    $_G['style'][imgdir] => 界面基础图片目录
    $_G['style'][boardimg] => logo所在路径
    $_G['style'][headertext] => 页头文字颜色
    $_G['style'][footertext] => 页脚文字颜色
    $_G['style'][menubgcolor] => 导航菜单背景颜色
    $_G['style'][menutext] => 导航菜单文字颜色
    $_G['style'][menuhovertext] => 导航菜单高亮文字颜色
    $_G['style'][wrapbg] => 主体表格背景色
    $_G['style'][wrapbordercolor] => 主体表格边框色
    $_G['style'][contentwidth] => 阅读区域宽度
    $_G['style'][contentseparate] => 帖子间隔颜色
    $_G['style'][inputborder] => 输入框边框浅色
    $_G['style'][menuhoverbgcode] => 导航菜单高亮背景
    $_G['style'][floatbgcode] => 弹出窗口背景色
    $_G['style'][dropmenubgcode] => 下拉菜单背景色
    $_G['style'][floatmaskbgcode] => 弹出窗口边框颜色
    $_G['style'][headerbgcode] => 页头背景
    $_G['style'][sidebgcode] => 家园侧边栏背景属性
    $_G['style'][bgcode] => 全局背景属性属性
    $_G['style'][titlebgcode] => 版块列表标题背景$_G['style'][menubgcode] => 导航菜单背景属性
    $_G['style'][boardlogo] => LOGO img代码





  • 6

    $_G的本质
    在$G构造完毕后,有这么一句代码:$this->var = & $_G;
    可以看出$_G其实是discuz_application的一部分。





  • 7

    点评:本来应该以discuz_application为核心的,结果却屈从于历史现状,从$this->var = & $_G;这句代码可以看得出discuz的攻城狮,也是想把$_G隐藏于discuz_application中,以discuz_application为主线来开发discuz;但最后可能迫于历史情况,没能够 发挥discuz_application.var应该的作用呐。
    如果discuz把$_G给隐藏起来,对$_G的访问都通过discuz_applicaiton来操作,那么这个框架就走了非常大的一步了。



爱享网(www.ifreeshare.com) --- 致力于网络资源的的分享!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|爱享网 ( 京ICP备15051618号-1

GMT+8, 2019-12-8 16:35 , Processed in 0.072623 second(s), 3 queries , File On.

自由的分享网站-爱享网 IFreeShare! X3.3

创建于2018年07月!

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