sunlab/wn-gamification-plugin

WinterCMS 的游戏化插件

安装: 60

依赖: 1

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 1

类型:winter-plugin

v1.0.12 2021-06-18 21:06 UTC

This package is auto-updated.

Last update: 2024-09-18 15:34:10 UTC


README

此插件允许你在成员执行某些操作时对其予以奖励。为了增加统计数据,此插件使用 SunLab.Measures

使用方法

从后台创建所有需要的徽章。徽章至少需要一个名称。

SunLab.Measures 自动关联

当填写度量名称和所需数量时:一旦达到所需数量,用户将自动获得徽章。有关度量增加的详细信息,请参阅 SunLab.Measures

手动添加/移除徽章

要手动添加或移除徽章,请使用接受徽章引用(名称)作为字符串、整数(ID)或徽章模型的 attachBadgedetachBadge 方法。

\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');
    });
});