tkuska / dashboard-bundle
仪表板组件,小工具
dev-master
2021-03-02 08:13 UTC
Requires
- php: >=7.2
- friendsofsymfony/jsrouting-bundle: ^2.2
Suggests
- twbs/bootstrap: ~3
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。