php技术博客
让天下没有搞不定的bug~

收集:Discuz 二次开发必备

      虽然没有弄过Discuz ,不过想一想也就那么一回事,除了几个封装好的核心文件,也就没有其他的了,然后就是调用了,小涛今天分享一下Discuz 的一些基本知识,对 Discuz!程序和执行进行简要分析,供所有 对 Discuz! 感兴趣的朋友分享,也 欢迎 各位朋友 提出 自己的 观点和意见。

关键的程序文件

Discuz! 中的关键的程序文件包括:

  • Discuz! 根目录下的 .php 文件,在这 40 多个文件中,只有十来个是常用的(详见后面的文件列表)。
  • Include 文件夹中的文件,可以说这些是整个 系统的核心,其中又以 common.inc.php 最为关重。
  • templates\default 文件夹中的文件(使用默认模板),包括模板文件和语言包文件,它们构成论坛的前台。如果是 管理员 登陆的话,则还要涉及  admin 等文件夹。程序运行机制简述

    用户登陆 论坛 时 主要 与 Discuz! 根目录下的 .php 文件 进行交互操作,

    几乎所有这些文件 的开头 都用   require_once ‘./include/common.inc.php’;     导入初始化模块程序

    而这些文件中 又都用   include template(‘模板文件名’);   比如 search.php中的   include template(’search’);  解析模板

    当用户操作论坛界面时,这些文件 先导入  common.inc.php  进行初始化,并执行该文件定义的功能,
    然后 用 global.func.php  中定义的   template  函数 进行模板解析(或使用模板缓存),展示新的界面。
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    主要程序文件列表

    网上关于 Discuz! 文件列表的介绍很多,但 我 觉得 列出 关键和常用的文件更有利分析。

    Discuz! 根目录下的文件

    config.inc.php                  配置论坛数据库、密码等信息
    index.php                        控制首页元素显示
    logging.php                     登陆系统,判断用户名、密码。
    register.php                    注册文件,同时也会控制注册的信息的合法性
    post.php                         管理帖子发表、编辑等等信息,也会有权限的控制提示
    viewthread.php               处理浏览帖子时候的帖子信息显示,例如信息、标题等等
    search.php                     处理论坛搜索功能
    forumdisplay.php            论坛主题列表的显示
    digest.php                      论坛精华区的信息显示
    memcp.php                    会员控制面板
    space.php                      用户资料显示
    member.php                  控制会员列表显示
    pm.php                          论坛短信息程序
    admincp.php                  管理员系统设置程序文件

    以上是根目录下常用的文件,此外还有:

    attachment.php             附件文件
    announcement.php       论坛公告的显示
    blog.php                        浏览BLOG文章
    discuz_version.php       论坛版本信息
    faq.php                         论坛帮助系统
    misc.php                       控制评分功能、BLOG、论坛界面显示等功能
    plugin.php                    论坛插件,控制论坛插件的菜单的显示
    redirect.php                  控制显示论坛的最后发表的主题访问
    rss.php                         RSS快速订阅
    seccode.php                论坛注册,生成验证码的程序
    stats.php                      处理统计中的统计信息
    topic.php                     控制页面显示,显示主题条数
    topicadmin.php            管理人员的前台管理操作,如精华、置顶、高亮等等
    viewpro.php                 处理浏览会员信息的内容显示
    magic.php                    处理道具商店的内容显示

    Include 文件夹

    common.inc.php           最重要的核心程序,读取COOKIES信息,定义全局系统函数变量(网上有分析该文件的贴子)
    global.func.php            丰富的函数库,如除去HTML、发PM、发EMAIL等等
    db_mysql.class.php     数据库中心操作程序
    template.func.php       调用模板、控制模板缓存生成的文件
    misc.func.php              控制管理PM,评分PM,评分记录,附件高亮显示,IP转换为地理位置
    forum.func.php            处理论坛信息用的函数,如论坛菜单下拉等等
    cache.func.php            控制生成缓存文件的程序

    post.func.php               主要是记录信息、更新帖子的函数
    editpost.inc.php            编辑帖子的信息处理
    pmprompt.inc.php         短信息内容处理
    newthread.inc.php        发新话题的信息处理
    newreply.inc.php           发回复的信息处理
    security.inc.php             安全性检查

    以上都是Include 文件夹中较重要的,另外还有

    sendmail.inc.php           发送EMAIL的程序
    relatethreads.inc.php    生成相关主题的程序
    promotion.inc.php         记录当前用户的IP等信息
    printable.inc.php            打印主题用的程序
    discuzcode.func.php      Discuz!代码转换处理程序
    db_mysql_error.inc.php  数据库错误汇报
    cron.func.php                 控制计划任务执行的程序
    counter.inc.php               记录操作系统与浏览器的统计
    chinese.class.php           处理乱码和字符集用
    category.inc.php             控制帖数,今日发帖数的统计
    blog.func.php                  BLOG发帖时的信息处理
    attachment.func.php       识别附件拓展名,控制附件前面显示类别图片的程序, 还有附件大小的记录判断
    advertisements.inc.php    处理广告显示
    serverbusy.htm                 系统错误信息

    Include 文件夹中还有子文件夹:

        crons 子文件夹             计划任务文件
        tables 子文件夹             GB码 Big5码语言文件
        magic 子文件夹             道具商店文件
        javascript子文件夹        系统用的javascript文件,其中 common.js 和 bbcode.js 较重要

 

      要想对Discuz 进行二次开发,明白了这些基本知识,分析起来就简单了,关键在于Discuz 的开发思想和流程!

     技术分享,技术交流,小涛与您共同成长……

 

赞(0)
未经允许不得转载:PHP技术博客 » 收集:Discuz 二次开发必备