本系统旨在无缝兼容 Discuz! 数据库结构,实现从 Discuz! 到轻量级 CMS 的平滑过渡。核心设计原则:
零数据迁移:直接读取 Discuz! 原有数据表,不进行数据复制或迁移,避免数据丢失风险。
统一表前缀:安装时将保留的核心表前缀统一为 pre_,使系统整洁易维护。
保留核心功能:只保留用户、帖子、内容、附件(图片)等核心数据表,移除 Discuz! 的插件、门户、群组、积分等冗余功能。
简化架构:核心功能集中在帖子展示、发布、编辑、图片上传、UBB 解析、评论,无复杂权限体系(仅管理员/普通用户)。
附件分类管理:将帖子图片、用户头像、站点 Logo、页面背景、页头背景等按类型分目录存储,实现清晰、可维护的附件管理体系。
1.2 技术选型
后端:PHP 7.4+,PDO_MySQL 扩展。
前端:HTML5 + CSS3 + 原生 JavaScript(无复杂框架)。
编辑器:WangEditor(富文本编辑器),用于帖子内容的所见即所得编辑,支持编辑器图片上传。
图片存储:按类型分目录存储(forum/、avatar/、logo/、background/、header_bg/),按 年/月/日 自动创建子目录。
UBB 解析:从 Discuz! 内容(message 字段)提取 UBB 标签,在前台渲染为 HTML,支持 [size]、[url]、[list]、[attach]、[color]、[backcolor] 等常用标签。
版本号规范:主版本号.次版本号.修订号(如 v3.0),主版本号变更表示重大架构调整,次版本号变更表示功能新增,修订号变更表示 Bug 修复。
1.3 数据库保留清单
安装程序只保留以下 19 张核心表:
Discuz! 核心表(16 张):
用户相关:pre_common_member、pre_common_member_count、pre_common_member_status
帖子相关:pre_forum_thread(新增 image 字段)、pre_forum_post
附件相关:pre_forum_attachment(主表)+ pre_forum_attachment_0 ~ pre_forum_attachment_9(10 张分表)
系统新增表(3 张):
pre_settings:系统设置表(存储 Logo 路径、背景图路径、站点名称等)
pre_ads:广告管理表
pre_home_photos:首页照片墙表
其余 Discuz! 表(如 pre_common_setting、pre_forum_forum、pre_home_*、pre_portal_*、pre_plugin_*)在安装时根据用户选择删除或保留。
1.4 图片处理流程
1.4.1 帖子图片
存储路径:data/attachment/forum/(兼容 Discuz! 原路径)
上传方式:编辑器内上传(upload_editor_image.php)或封面上传(edit_post.php/post.php)
存储规则:按 年/月/日 自动创建子目录,生成唯一文件名
封面提取:编辑保存时自动从正文中提取第一张图片,更新到 pre_forum_thread.image 字段
前台显示:ubb2html() 函数解析 [attach] 标签,从附件分表获取路径,生成 <img> 标签
1.4.2 用户头像
存储路径:data/attachment/avatar/
上传接口:upload_avatar.php
占位机制:用户未上传头像时,自动显示人像影印占位图标(SVG 或 Unicode 字符)
删除策略:用户删除头像时,自动恢复默认占位(不删除物理文件,仅清空数据库记录)
更新方式:上传新头像时,自动删除旧头像文件,避免冗余
1.4.3 站点 Logo
存储路径:data/attachment/logo/
上传管理:管理后台(admin_setting.php)提供 Logo 上传功能
默认占位:系统自带望远景系统 Logo 占位图(assets/logo-default.png),安装时自动部署
删除策略:用户删除 Logo 时,自动恢复默认占位(不删除物理文件,仅清空数据库记录)
添加覆盖不删除:上传新 Logo 时,保留旧 Logo 文件(不删除),仅更新数据库中的路径;用户如需清理旧文件,可手动操作
1.4.4 页面背景
存储路径:data/attachment/background/
上传管理:管理后台(admin_setting.php)提供背景图上传功能
删除策略:用户删除背景图时,自动恢复为默认背景色(白色)
应用范围:全站页面背景(body 样式)
1.4.5 页头背景
存储路径:data/attachment/header_bg/
上传管理:管理后台(admin_setting.php)提供页头背景图上传功能
删除策略:用户删除页头背景图时,自动恢复为默认渐变色(linear-gradient(135deg, #2d8cf0, #1a6bbf))
应用范围:页面头部区域(.header 样式)