`

class_core.php 模块功能白皮书

 
阅读更多

source/class/class_core.php 是 Discuz! 的通用初始化模块程序,其几乎被所有的外部代码所引用,在您开始插件设计之前,可以先对该模块的大致功能做一定的了解。class_core.php 主要完成了以下任务:

  • 对不同 PHP 及操作系统环境做了判断和兼容性处理,使得 Discuz! 可以运行于各种不同配置的服务器环境下。
  • 初始化常量 IN_DISCUZ 为 TRUE,用于 include 或 require 后续程序的判断,避免其他程序被非法引用。
  • 读取社区程序所在绝对路径,存放于常量 DISCUZ_ROOT 中。
  • 加载所需的基本函数库 source/function/function_core.php。
  • 通过 config/config_global.php 中提供的数据库账号信息,建立数据库连接。Discuz! 支持数据表的前缀,如需获得表的全名,可使用“DB::table('tablename')”方式。
  • 判断用户是否登录,如登录标记 $_G['uid'] 为非 0,同时将 $_G['username'](加了 addslashes 的用户名,可用于不加修改的插入数据库)、 $_G['member']['username'](原始的用户名,可用于页面显示)、$_G['member']['password'](用户密码 的MD5串)等相应用户信息赋值,其他用户信息存放于 $_G['member'],更多信息可通过“getuserprofile()”获取。
  • 判断用户管理权限,将管理权限标记 $_G['adminid'] 为 1~3 中间的值。0 代表普通用户;1 代表论坛管理员;2 代表超级版主;3 代表论坛版主。 将用户权限按照其所在的主用户组 ID 标记为 $_G['groupid'],相关权限从该 $_G['groupid'] 所对应的系统缓存中读出,存放于 $_G['group']。
  • 预置读入了每个模块的各种设置变量。
分享到:
评论

相关推荐

    imagenet_class_index.json

    imagenet_class_index.json

    ApacheJMeter_http.jar与ApacheJMeter_core.jar.zip

    最新版Jmeter5.3,修改源码RequestViewHTTP.class,字符编码修改为utf-8 ,解决上传文件与录制脚本的中文乱码问题,下载两个jar文件替换到Jmeter的lib/ext目录下即可,重启jmeter,重新选择上传文件,在请求中设置...

    db_access.class.rar_DB_ACCESSGROUP php_class.php acce_class_acce

    标签中的"db_accessgroup_php class.php_acce class_access.php php_access php_db_acce"是关键词的组合,暗示了类库可能包含对数据库访问组(DB_ACCESSGROUP)的支持,可能是用于管理用户权限或角色的数据库操作。...

    php_serial.class.rar_php serial_php gsm class_php seri_php_dio_

    标题 "php_serial.class.rar" 暗示了一个与PHP相关的类库,主要涉及的是通过串行通信(Serial Port)进行GSM短信发送的功能。描述提到的 "PHP的短信dio类,用于短信gsm发送,很快!" 确认了这个类库的主要作用是提供...

    USB_Video_Class_1_1.zip

    USB_Video_Class_1.1.pdf USB_Video_Example 1.1.pdf USB_Video_FAQ_1.1.pdf USB_Video_Identifiers_1.1.pdf USB_Video_Payload_DV_1.1.pdf USB_Video_Payload_Frame_Based_1.1.pdf USB_Video_Payload_MJPEG_1.1.pdf...

    php_page_class.rar_ShowPage.class.php_page_page.class.php_php p

    标题“php_page_class.rar_ShowPage.class.php_page_page.class.php_php p”以及描述“很有用的PHP分页代码 已经做成类 很有用的PHP分页代码 已经做成类”暗示了这是一个已经封装好的PHP分页类库,它可能包含了两个...

    USB_Video_Class_1_5.zip

    2012-08-09 15:35 1,087,790 USB_Video_Example 1.5.pdf 2012-08-09 15:34 554,058 USB_Video_FAQ_1.5.pdf 2012-08-09 15:34 410,817 USB_Video_Payload...2012-08-09 15:35 2,241,936 UVC 1.5 Class specification.pdf

    中文usb_video_class_1.1.pdf

    注意是uvc1.1哦。压缩包内是两个版本,一个是官方原版uvc1.1的原版,一个是uvc1.1的机器翻译的中文版。方便大家参考查对,中文版可以作为快速浏览用的文档,想深入验证可以察看英文版。这样可以节省大量精力和时间,...

    php_fetion.rar_class_fetion.php_php socket_socket fetion php

    php版fetion类,压缩包中有vs_fetion(socket版).class.php和vs_fetion.class.php两个文件,视实际情况使用,协议是一样的,只是使用的php扩展不同,一般来说vs_fetion.class.php的兼容性更好一些。

    discussion.zip Python关于import的实验(10) 利用__init__.py文件将变量和包下的模块作为包的属性

    在Python编程语言中,`import`语句是用于导入其他模块或包的关键字,以便重用代码或利用已有的功能。本实验主要探讨如何利用`__init__.py`文件将变量和包下的模块作为包的属性,从而创建自定义的Python包。下面将...

    up_727174_MyLogPHP.class_wj2vm.rar

    - 时间戳和自定义前缀:每条日志记录都会自动带上时间戳,便于查看日志的时间顺序,同时允许用户自定义日志前缀,以便区分不同模块或场景的日志。 3. 使用示例: 包内的"MyLogPHP-1.2.1.class.php"文件包含了...

    jad.zip_jad.exe_net.sf.jadclipse_3.3.0.jar

    Java开发过程中,有时我们需要查看或理解已编译的.class文件中的源代码,因为这些文件是Java编译器生成的字节码,不包含原始的源代码。这时,我们就需要用到反编译工具,其中jad就是一款知名的Java反编译器。jad.zip...

    懒人包:UTF-8的ApacheJMeter_http.jar和ApacheJMeter_core.jar

    Jmeter5.3版本,修改源码RequestViewHTTP.class,字符编码修改为utf-8 ,解决上传文件与录制脚本的中文乱码问题,下载jar文件替换到Jmeter的lib/ext目录下即可,重启jmeter,重新选择上传文件,在请求中设置内容编码...

    vc_des_class_revision.rar_REvision

    标题中的"vc_des_class_revision.rar_REvision"表明这是一个关于DES(Data Encryption Standard)类的修订版代码库。DES是一种广泛使用的对称加密算法,由IBM在1970年代开发,后来被美国国家标准局(NIST)采纳为...

    json_class.php

    json_class.php 这是phpe个到得rs们的必须品 也是将来

    php_zip.dll

    php_zip,ZipArchive类,用于解决Fatal error: Class 'ZipArchive' not found in ... 先看下你的 php5\ext 这个文件夹下面是否有 php_zip.dll 这个文件,没有的话,可以在此下载! 接下来,我们就是要使php支持这个Zip...

    class_fetion.zip_SmsSend.class.php_php 短信_sms_飞信 php

    标题中的"class_fetion.zip_SmsSend.class.php_php 短信_sms_飞信 php"表明这是一个关于使用PHP实现飞信短信发送功能的代码库。描述提到“一个牛人用PHP开发的通过飞信发送短信的功能”,这确认了我们的主题是使用...

    JNI的两个头文件jni.h和jni_md.h

    例如,`FindClass`函数用于查找Java类,`GetMethodID`用于获取Java方法的ID,`CallObjectMethod`用于调用Java对象的方法等。此外,`JNIEnv`指针是JNI的核心,它包含了所有上述的函数指针,通过这个指针,本地代码...

    Creating_Class_Diagram.swf

    Creating_Class_Diagram.swf

    classin_win_install_4.2.6.353h6_s.exe

    classin_win_install_4.2.6.353h6_s.exe

Global site tag (gtag.js) - Google Analytics