tkuska/dashboard-bundle

仪表板组件,小工具

安装: 106

依赖者: 0

建议者: 0

安全性: 0

星标: 3

关注者: 2

分支: 5

公开问题: 1

类型:symfony-bundle

dev-master 2021-03-02 08:13 UTC

This package is auto-updated.

Last update: 2024-08-29 04:03:30 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),则必须将表单作为'form'传递给模板中的getConfigForm。

此方法渲染显示的小工具。所有逻辑都应放在这里。

缓存

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

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

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

在上面的示例中,您可以看到默认返回值。

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