智简魔方文档

挂件开发

挂件路径

挂件文件放在 public/plugins/widget/ 目录下。

文件名不能重复,采用首字母大写的驼峰命名,例如 ActiveClient。

挂件类

文件名和类名保持一致,挂件标识即文件名。例如:public/plugins/widget/ActiveClient.php。

示例

<?php

namespace widget;

use app\common\lib\Widget;

use app\common\model\ClientModel;

class ActiveClient extends Widget

{

    protected $title = '活跃用户';

    protected $weight = 60;

    protected $columns = 1;

    public function getData()

    {

     $data = [];

     $active = ClientModel::where('status', 1)->where('last_login_time', '>=', time()-15*24*3600)->count();

        $count = ClientModel::where('status', 1)->count();

        $data['active_client_count'] = $active;

        $data['active_client_percent'] = $count>0 ? bcmul(($active/$count), 100, 1) : '0.0';

     return $data;

    }

    public function output(){

     $data = $this->getData();

     return <<<HTML

<div class="top-item active-div"><div><span>{$data['active_client_count']}</span></div> <div>

          活跃用户(人)

        </div> <div class="trend blue-text active-box">活跃率 {$data['active_client_percent']}%</div> <div><span></span> <span></span> <span></span> <span></span></div></div>

HTML;

    }

挂件类必须继承 app\common\lib\Widget。

挂件属性

属性说明
$title挂件名称,必填
$weight挂件排序权重,越小越靠前,默认值为 100
$columns挂件占用列数,范围为 1–4,默认值为 1

必须实现的方法

方法名称描述参数返回
getData获取挂件数据—返回数组,内容由“获取挂件数据”接口返回
output输出挂件内容—返回用于显示的字符串,可包含 HTML 和 JavaScript,内容由“获取挂件内容”接口返回

通过 Hook 增加挂件

使用 admin_widget Hook,返回实例化的挂件类;注意不要与挂件目录中的文件冲突。

示例

add_hook("admin_widget", function(){

return new ActiveClient();

});

上传挂件后,重新登录并在管理组中添加对应的挂件权限,即可使用。