sunlab / wn-gamification-plugin
WinterCMS 的游戏化插件
v1.0.12
2021-06-18 21:06 UTC
Requires
- php: >=7.0
- composer/installers: ~1.0
- sunlab/wn-measures-plugin: ^v1.0.0
- winter/wn-user-plugin: ^2.0
This package is auto-updated.
Last update: 2024-09-18 15:34:10 UTC
README
此插件允许你在成员执行某些操作时对其予以奖励。为了增加统计数据,此插件使用 SunLab.Measures
使用方法
从后台创建所有需要的徽章。徽章至少需要一个名称。
与 SunLab.Measures 自动关联
当填写度量名称和所需数量时:一旦达到所需数量,用户将自动获得徽章。有关度量增加的详细信息,请参阅 SunLab.Measures。
手动添加/移除徽章
要手动添加或移除徽章,请使用接受徽章引用(名称)作为字符串、整数(ID)或徽章模型的 attachBadge 和 detachBadge 方法。
\Winter\User\Models\User::extend(function ($user) { Event::listen('winter.user.activate', function($user) { $user->attachBadge('Verified User'); }); });
验证徽章添加
为了简化徽章添加验证,插件包含一个接受徽章引用(名称)作为字符串、整数(ID)或徽章模型的 hasBadge 方法。
if ($user->haBadge('Verified User')) { // User has the 'Verified User' badge }
组件
此插件包含两个组件
BadgesList
显示所有可奖励的徽章以及已获得该徽章的成员数量。
UserBadges
仅显示特定成员获得的徽章。该成员可以是实际登录的用户,或通过URL参数设置。
树形视图
如果要将徽章作为树形结构显示,请使用组件的 tree-displayed 属性以优化数据库搜索。
默认查询将按度量名称和所需数量顺序加载徽章。
度量提醒
SunLab.Measures 内部用于插件在触发某些事件时增加一些度量。您可以使用“度量”的通用事件监听器从后台配置最基本的事件,但对于更复杂的情况,您需要从 Plugin.php 文件手动创建监听器。
一个用例是在注册后立即给予徽章奖励,因为目前插件的事件不受 Measures 支持,我们需要手动创建它。
\Winter\User\Models\User::extend(function ($user) { $user->bindEvent('model.afterCreate', function () use ($user) { $user->incrementMeasure('registered'); }); });