面向 XenForo 2 的限时彩蛋收集插件:按规则在主题帖、资源页、列表页、用户空间等位置嵌入可点击彩蛋;用户访问时即时生成,集齐后发送可配置的站内通知。
当前版本:1.1.0 · Addon ID:RECAY/EasterEgg · 许可:MIT
- 访问时生成:命中规则的页面按概率即时生成点位,不预埋全站
- 文本内嵌:彩蛋嵌入正文/列表文本(非飘浮层)
- 投放范围:主题帖、资源详情、列表页(版块 / 最新等)、用户个人空间,以及自定义路径
- 密度控制:始终命中,或按主题/资源/用户 ID 取模(
ID % N == R) - 单页上限:可限制当前页面最多出现几枚彩蛋
- 收集器 UI:可选展示进度;支持多活动同显;移动端自适应
- 游客策略:完全隐藏,或可见点击后跳转登录/自定义链接
- 参与限制:注册时间、用户组包含/排除、排除指定用户等
- 完成通知:自定义标题与正文(支持
{username}、{campaign}),可选「查看详情」超链接 - 运营统计:参与人数、完成人数、各彩蛋收集数;英文逗号分隔名单(整活动 + 分彩蛋);CSV 导出已完成用户
- 规则重算:改规则后可保留 / 重算未领取 / 重算全部实例
- 状态自动同步:已排期 / 进行中 / 已结束按时间自动切换(定时任务约每 5 分钟;打开活动列表或编辑页也会立即同步)
管理端入口仅限超级管理员。
| 项目 | 要求 |
|---|---|
| XenForo | 2.1.0+(XF ≥ 2010070) |
| PHP | 与所装 XenForo 版本一致 |
| 第三方插件 | 无依赖 |
可选:若使用 XenForo Resource Manager,可启用「资源详情页」投放。
- 从 Releases 下载
RECAY-EasterEgg-x.y.z.zip - 后台 → 插件 → 安装 / 从归档升级
- 上传 ZIP,按向导完成安装或升级
- 确认插件状态为已启用
归档内路径结构:
upload/src/addons/RECAY/EasterEgg/...
- 将
src/addons/RECAY/EasterEgg上传到论坛根目录对应位置
(即src/addons/RECAY/EasterEgg/) - 后台 → 插件 → 找到「彩蛋收集活动」→ 安装 / 升级
升级时若提示文件哈希校验警告,请确认已完整覆盖全部文件后再继续。
- 后台导航 → 彩蛋活动
- 创建活动:设置时间窗、完成通知标题/正文,可选填写完成通知超链接与活动公告链接
- 添加彩蛋:为每种可收集目标设置
egg_key、标题、图标 URL(可选) - 添加规则:
- 勾选出现页面类型;需要时用「额外路径」精确指定(如
/、/whats-new/) - 配置命中方式(始终 / ID 取模)与各彩蛋出现概率
- 设置单页最大彩蛋数
- 勾选出现页面类型;需要时用「额外路径」精确指定(如
- 将活动设为 进行中(或设为已排期等待开始时间)
- 前台访问命中页面,确认彩蛋与收集器显示正常
- 活动结束后在 活动统计 查看名单,或 导出已完成用户 CSV
| 占位符 | 含义 |
|---|---|
{username} |
完成用户的用户名 |
{campaign} |
活动名称 |
src/addons/RECAY/EasterEgg/ # 插件本体(安装目标)
_data/ # 短语、模板、路由、权限等
Admin/ # 管理端控制器与视图
Pub/ # 前台 API(context / claim)
Service/ # 生成、领取、完成通知
Entity/ Repository/ # 数据模型
js/easteregg/core.js # 前端收集器与嵌入逻辑
styles/easteregg.css
Setup.php # 安装 / 升级
addon.json
RECAY-EasterEgg-1.1.0.zip # 可安装发布包(若随仓库附带)
开发时以 src/addons/RECAY/EasterEgg 为准;发布前请重新生成 hashes.json 与 ZIP。
- 全部活动配置、统计与导出仅 超级管理员 可访问
- 前台领取接口校验登录态、投放实例有效性与活动时间窗
- 完成通知超链接仅接受
http/httpsURL
- 备份数据库与现有插件目录(建议)
- 用新版 ZIP 在 ACP 升级,或覆盖文件后在插件列表执行升级
- 确认版本号已变为目标版本(如
1.1.0) - 抽查:活动编辑、规则页、统计名单、完成通知与可选超链接
从较早版本升级时,安装程序会按 Setup.php 中的步骤依次执行(含表结构变更与无 schema 标记步骤)。
彩蛋不出现?
检查活动是否「进行中」、规则是否启用、页面类型/额外路径是否匹配、概率与 ID 取模条件、单页上限,以及当前用户是否已被限制排除。改规则后可按需执行「规则重算」。
游客看不到?
若游客策略为「完全不渲染」,游客端不会出现彩蛋与收集器。
完成了但没有通知?
确认通知标题与正文均非空;用户需真正达成完成条件(默认集齐全部计入完成的彩蛋)。可在用户账户通知中查看;统计页「已完成名单」可核对完成记录。
统计名单为空?
尚无完成用户或尚无该彩蛋的领取记录时,对应文本框为空属正常。
- 设计目标为不依赖第三方插件;资源详情投放在已安装 RM 的站点上可用
- 前端样式尽量贴合默认主题;深度定制主题可能需少量 CSS 调整
- 多活动同时进行时,可通过活动级开关控制同页是否同显收集器
- 正式发布包:完成通知可选超链接、统计页逗号分隔名单(整活动 + 分彩蛋)
- 活动状态自动同步、导出与收集器体验完善
- 投放范围支持用户个人空间与自定义路径;文本内嵌投放
更细的迭代记录见各版本 Setup.php 升级步骤与 Git 历史。
本项目采用 MIT License:可自由使用、修改、分发与商用,需保留许可证与版权声明;软件按「原样」提供,不附带任何担保。
问题反馈请通过本仓库 Issues 提交(建议附上 XenForo 版本、PHP 版本与复现步骤)。