2lenet/dashboard-bundle

仪表板组件,小部件

维护者

详细信息

github.com/2lenet/dashboard

源代码

安装数: 8,056

依赖项: 0

建议者: 0

安全性: 0

星标: 1

关注者: 7

分支: 5

类型:symfony-bundle

1.4.4 2022-05-03 10:26 UTC

README

此组件提供可自定义的小部件仪表板。

安装

composer require 2lenet/dashboard-bundle

设置组件

添加以下内容到services.yaml

App\Widgets\:
        resource: '../src/Widgets'
        tags: ['tkuska_dashboard.widget']

添加以下内容到routes.yaml

dashboard_widgets:
    resource: "@TkuskaDashboardBundle/Resources/config/routes.yaml"

您还需要更新数据库以包含小部件表。

php bin/console make:migration
php bin/console doc:mi:mi

制作小部件

所有小部件类都将位于src/Widgets/目录中。

它们必须扩展AbstractWidget。

use Tkuska\DashboardBundle\Widgets\AbstractWidget;

可以重写的方法

  • __construct: 常规服务注入的构造函数。您至少需要一个Twig_Environment ($twig)
  • getName: 必须返回小部件的通用名称
  • getJsonSchema: 必须返回一个数组(将进行JSON编码),该数组表示Json Schema,用于小部件配置。(也见 https://github.com/json-editor/json-editor
  • getConfigForm: 创建配置表单。您通常不需要修改它,但在某些情况下可能需要(例如:bootstrap版本)
  • support: 如果小部件受支持则返回true。如果不支持,则用户无法添加或渲染此类小部件
  • supportsAjax: 如果小部件应该异步加载则返回true。如果不支持,则将直接与仪表板一起加载
  • transformResponse: 接受表示小部件的Response作为参数并返回响应。默认情况下,它将小部件缓存300秒。

您必须实现render()方法。

此方法返回简单的HTML。您可以使用$twig->render("template.html.twig", array(...))。您的模板应扩展基本小部件模板,因为它有一些交互。否则,请确保您实现了这些交互。

{% extends '@TkuskaDashboard/widget/base_widget.html.twig' %}

注意,基本模板使用Bootstrap面板,这意味着您最好将小部件主体放在<div class="panel-body">中。

如果您使用小部件配置(getJsonSchema),则必须使用getConfigForm作为'form'将表单传递给模板。

此方法渲染显示的小部件。所有您的逻辑都应该在这里。

缓存

默认情况下启用缓存,您可以使用以下方式更改超时和键:

public function getCacheKey():string{
    return $this->getId() . "_".md5($this->config);
}

public function getCacheTimeout():int {
    return 300;
}

上面是默认返回。

如果您想禁用小部件的缓存,getCacheTimeout必须返回0。