本系统旨在无缝兼容 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 样式)

1.5 附件分类管理方案
附件类型 存储路径 数据库字段 上传接口 占位机制
帖子图片 data/attachment/forum/ pre_forum_thread.image upload_editor_image.php 无(空则显示“无图”)
用户头像 data/attachment/avatar/ pre_common_member.avatar upload_avatar.php 人像影印 SVG 占位
站点 Logo data/attachment/logo/ pre_settings.logo_path admin_setting.php 望远景系统 Logo 占位
页面背景 data/attachment/background/ pre_settings.background_path admin_setting.php 默认白色背景
页头背景 data/attachment/header_bg/ pre_settings.header_bg_path admin_setting.php 默认蓝色渐变

二、当前状态(v3.0)
2.1 已实现功能
功能模块 状态 说明
用户登录/注册 ✅ 完成 使用 pre_common_member 表,密码兼容 Discuz! 加密(md5(md5($password).$salt))
用户头像 ✅ 完成 支持上传、删除、自动恢复默认占位(人像影印)
帖子发布 ✅ 完成 标题 + 内容(WangEditor 富文本),支持图片上传(编辑器内 + 表单)
帖子编辑 ✅ 完成 可编辑标题和内容,支持删除封面图,自动提取正文第一张图片
帖子删除 ✅ 完成 仅管理员或作者可删除
首页图文列表 ✅ 完成 三列布局,支持“左图右文”/“上图下文”切换,无限滚动分页
帖子详情页 ✅ 完成 显示完整内容、作者信息、浏览量、评论区(登录后可评论)
UBB 解析 ✅ 完成 支持 [size]、[font]、[color]、[backcolor]、[b]、[i]、[u]、[url]、[list]、[align]、[attach] 等常用标签
图片上传 ✅ 完成 编辑器内图片上传(upload_editor_image.php)与封面上传(edit_post.php/post.php)均正常
封面图提取 ✅ 完成 编辑保存时自动从正文提取第一张图片作为封面
搜索功能 ✅ 完成 支持按标题关键词搜索,分页显示
管理员权限 ✅ 完成 基于 adminid 和 allowadmincp 判断,管理员可编辑/删除所有帖子,可见后台管理入口
管理后台 ✅ 完成 包含首页设置、广告管理、用户管理(重置密码)、照片墙管理、批量提取封面图、Logo/背景上传
站点 Logo ✅ 完成 支持上传/删除/自动恢复默认占位(望远景系统 Logo)
页面/页头背景 ✅ 完成 支持上传/删除/自动恢复默认背景
评论删除 ✅ 完成 管理员、评论作者、帖子作者均可删除评论
复制分享 ✅ 完成 一键复制“标题 + 链接 + 出处”
站内搜索 ✅ 完成 导航栏搜索框,按标题模糊搜索
无限滚动 ✅ 完成 首页第三组标题列表无限加载,无页码