帖子投票

帖子投票运维

版本 v1.0.3· 张先生 · 29 次获取 · 运维
为帖子添加内嵌投票:单选/多选、倒计时、实时结果;发帖拓展可选投票帖,列表展示投票标识。
免费

详情介绍

一、插件简介

帖子投票(vote)面向社区站点,支持在发帖时附加内嵌投票,读者在帖子详情页参与投票并查看实时结果。支持单选/多选、倒计时结束、投票前是否展示结果等策略。

适合意见征集、活动票选、社区决策等场景;投票数据与帖子绑定,无需单独页面。

  • 前台入口:发帖/编辑页拓展区「投票」;帖子详情页投票卡片
  • 后台入口:无独立后台菜单;管理员发帖/编辑帖子时同样可使用投票拓展
  • 接口路径(若社区开启伪静态后缀,如 .html,则路径后追加后缀,下同):
  • POST /vote/cast — 提交投票
  • GET /vote/card — 获取投票卡片 HTML

二、核心能力

能力说明
单选/多选发帖时选择投票模式;多选可设最多可选几项
选项管理2–20 个选项(上限由配置控制)
倒计时可设有效小时数,到期自动结束;0 表示不限期
结果展示可配置投票前是否显示票数与比例
权限控制可按用户组限制谁可发起投票
列表标识帖子列表展示投票帖标识(topicMetaMap 钩子)
防篡改已有投票记录后,选项/模式/截止时间不可再改

三、依赖与安装

建议环境:

  • 已安装并启用 社区(community) 插件(发帖、回帖、会员体系)
  • 社区前台伪静态后缀由社区 FrontRoute::urlSuffix() 决定,接口路径可能带 .html 等后缀

安装步骤:

  1. 应用中心安装并启用 帖子投票
  2. 在插件配置中打开「启用帖子投票」
  3. (可选)配置可发布用户组、选项上限、默认时长、投票前是否显示结果
  4. 用测试账号发帖并勾选投票,走通投票流程

数据表(安装时自动创建):

  • {prefix}topic_vote — 投票主表
  • {prefix}topic_vote_option — 选项
  • {prefix}topic_vote_ballot — 投票记录

四、应用中心基础配置

路径:应用中心 → 帖子投票 → 配置

配置项说明建议
启用帖子投票总开关;关闭后前台不展示、不可参与上线保持开启
可发布用户组勾选后仅这些用户组可发起投票;不勾选不限制;管理员不受限按需限制
选项上限单次投票最多选项数(2–20)默认 10
默认时长(小时)发帖时倒计时默认值;0 = 不限期默认 24
投票前显示结果关闭后需投票或结束后才展示票数比例默认关闭

五、发帖投票配置(重点)

发帖/编辑页拓展区(compose_extra 插槽)可配置:

说明
启用投票勾选后保存帖子时同步投票数据
投票问题必填
投票模式单选 / 多选
最多可选多选时有效;单选固定为 1
有效时长小时数;0 不限期
选项列表至少 2 项,不超过配置上限

注意: 帖子已有投票记录后,仅可修改标题;模式、选项、截止时间锁定。

六、前台用户流程

  1. 有权限的用户发帖,在拓展区勾选「投票」并填写问题、选项、模式与时长
  2. 发布成功后,帖子详情页展示投票卡片(topic_after_content 插槽)
  3. 登录用户选择选项后提交(POST /vote/cast
  4. 单选直接提交;多选按「最多可选」限制勾选数量
  5. 投票进行中可查看结果(若配置允许投票前显示,或本人已投/已结束)
  6. 倒计时结束后状态变为已结束,不可再投

七、后台审核与运维

本插件无独立后台管理页。运维要点:

  • 违规投票帖按社区帖子管理流程处理(删帖会触发 afterTopicsDeleted 清理投票数据)
  • 调整「可发布用户组」可即时生效,不影响已有投票
  • 关闭插件后前台投票区隐藏,历史数据保留在库中

八、特殊说明

插件钩子(renderSlot):

插槽作用
topic_after_content帖子详情投票卡片
compose_extra前台发帖投票表单
admin_topic_form后台发帖投票表单
compose_assets编辑器 JS/CSS 资源

生命周期钩子:

  • afterTopicSave — 帖子保存后同步投票
  • afterTopicsDeleted — 删帖清理投票
  • topicMetaMap — 列表页投票标识

静态资源: vote.jsvote.cssvote-editor.js

九、推荐上线清单

  1. 启用插件
  2. 配置可发布用户组(如需限制)
  3. 设置选项上限与默认时长
  4. 确认「投票前显示结果」策略
  5. 用普通用户发帖带投票,另一账号参与并查看结果
  6. 测试倒计时结束后的状态

十、常见问题

Q:发帖看不到投票拓展? 检查「启用帖子投票」、当前用户组是否在「可发布用户组」内。

Q:保存提示「投票至少需要 2 个选项」? 至少填写 2 个非空选项。

Q:已有投票后无法改选项? 设计如此,防止刷票;无投票记录前可自由修改。

Q:接口 404? 确认插件已安装启用;若社区配置了 URL 后缀,接口需带后缀(如 /vote/cast.html)。

Q:未登录能否投票? 需登录后参与,具体以控制器校验为准。

更新记录 (3)

  • v1.0.3 2026-08-25
    发帖页按板块显示/隐藏入口;保存与上传接口校验板块
  • v1.0.2 2026-08-24
    支持 only_active_extras:后台编辑时,没开过的拓展不显示空表单
  • v1.0.1 2026-08-24
    首次发布
微信客服 微信客服