智简魔方文档

挂件开发

挂件路径

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方法

方法名称描述参数返回
getData获取挂件数据需要返回一个数组, 返回的内容会通过 "获取挂件数据"接口返回
output输出需要返回一个字符串用于显示,返回的内容支持html标签和javascript, 返回的内容会通过 "获取挂件内容"接口返回

通过hook增加挂件

hook名称是 admin_widget

返回的必须是实例化的挂件类,注意不要和挂件路径下的挂件冲突

示例

add_hook("admin_widget", function(){

return new ActiveClient();

});

挂件上传后,需要重新登录,在管理组添加对应挂件权限就可使用