跳到主要内容
奇点CMS v0.4.70 · 官方网站 登录 / 注册 在线激活

问答模块说明(对标百度知道)

1. 问题/回答内容入库前经 HTML 白名单净化(script/iframe/事件属性/javascript: 全剥离,a 加 rel="nofollow")。

щЧочнФцибхЭЧшп┤цШО.md 文档版本 v0.4.70 4 KB 更新于 2026-10-14

问答模块说明(对标百度知道)

版本:v1.0(2026-09-28 新增) 遵循《页面模块创建规范》:无 emoji 图标、CSRF 全覆盖、输出全转义、SQL 全参数绑定、内容白名单净化。

一、功能概览

能力说明
问答首页qa.php:筛选(最新/热门/回答最多/待解决/已解决)、关键词搜索、问题列表(回答数侧栏 + 解决徽标 + 最佳回答摘要)、分页
问题详情qa-question.php?id=N:问题正文、回答列表(采纳答案置顶绿边高亮)、回答表单、采纳/取消采纳、浏览计数
我要提问qa-ask.php:登录用户发布问题(标题 5-200 字 + 补充说明),发布即可见
采纳机制提问人本人或管理员可采纳最佳答案(一个问题仅一个采纳,切换采纳自动清旧);采纳后问题标记「已解决」
后台管理admin/qa.php 双 Tab:问题管理(屏蔽/恢复/撤采纳/删除连带回答)+ 回答管理(屏蔽/恢复/删除,联动 answer_count 与采纳状态)
首页栏目qa 类型「热门问答」:按浏览量取热门问题,行式列表(解决徽标 + 标题 + 回答数/浏览量),带「我要提问」快捷按钮

二、互动规则

  • 提问/回答/采纳均需登录;不能回答自己提出的问题。
  • 提问与回答默认直接发布(status=1),管理员可事后屏蔽(status=2)或删除;屏蔽采纳答案会自动撤销采纳并同步回答数。
  • 回答内容至少 5 个字;问题与回答内容入库前统一经 encyclopediaSanitize() 白名单净化(与百科/时政模块同一安全标准)。

三、文件清单

文件职责
qa.php问答频道首页(sort/q/page 参数)
qa-question.php问题详情 + 回答 + 采纳(POST 均带 CSRF)
qa-ask.php提问页(requireLogin)
admin/qa.php后台问题/回答管理(GET 快捷操作全部 CSRF)
includes/fn-qa.php模块函数库(经 includes/auth.php 统一加载,与百科/时政同因:functions.php 混合换行受编辑保护)
assets/css/qa.css模块样式(文件头含全站统一 Emoji 禁用规则块)
index.php首页 qa 栏目分支
admin/homepage-sections.php栏目类型注册 'qa' => '热门问答'
database.sql两张表 DDL(全新安装自动可用)

四、数据库设计

qa_questions(问题)

  • title 标题(5-200 字);content 补充说明(净化后 HTML)
  • user_id 提问人;view_count / answer_count 计数(answer_count 由代码同步维护)
  • accepted_answer_id 已采纳回答(NULL=待解决)
  • status:0=待审核 1=正常 2=已屏蔽(默认 1,后台可事后审核)

qa_answers(回答)

  • question_id / user_id / content(净化后 HTML)
  • is_accepted 采纳标记(与 qa_questions.accepted_answer_id 双向一致,由 acceptQaAnswer/unaccept 及后台操作维护)
  • status 同问题

五、入口与运营

  • 首页栏目「热门问答」位于「百科词条」正下方(sort_order=11,item_limit=6),后台「首页栏目」可调整条数/标题/排序/停用。
  • 前台导航未默认添加「问答」入口(如需,可在后台「导航管理」添加 qa.php,图标留空或用图片 URL)。
  • 种子数据:4 个示例问题(2 个已采纳解决)+ 5 条回答,均为站内使用咨询类内容,可直接保留或删除。

六、安全要点

  1. 问题/回答内容入库前经 HTML 白名单净化(script/iframe/事件属性/javascript: 全剥离,a 加 rel="nofollow")。
  2. 非正常状态问题仅提问人本人与管理员可见(对外 404)。
  3. 采纳权限:提问人本人或管理员;服务端校验,前端按钮仅对有权者渲染。
  4. 删除问题连带删除其全部回答;屏蔽/删除回答自动重算 answer_count 并处理采纳联动。

原始文件:docs/щЧочнФцибхЭЧшп┤цШО.md · 出于安全考虑,站点不直接暴露 docs/ 目录下的原始文件(其中含内部资料),请在交付包内查看全文。

全部文档
站点公告 官网试运行中,如需购买或试用请通过「联系我们」留言。