October CMS 具有一个灵活的仪表盘系统,能够托管多个仪表盘,并支持可配置的访问权限。每个仪表盘可以包含多个小部件,以显示各种数据类型。October CMS 附带了几种小部件类型,包括图表、表格及其他。默认小部件足够灵活,足以涵盖大多数常见的报告场景,例如显示销售或流量信息。此外,开发人员可以创建新的小部件类型,以应对默认小部件无法满足其需求的场景。
October CMS 中的大多数内置仪表盘小部件都使用服务器端数据源. 这些数据源以维度, 指标, 和指标值的形式提供结构化数据. 这种方法使开发人员能够使用相同的小部件类型处理各种数据. 例如, Table 小部件可以显示有关 CMS 流量或电子商务销售额的数据. 在这种情况下, Table 小部件必须连接到不同的数据源, 并引用由这些源提供的各个维度和指标.
对于大多数报表需求,开发者应该在他们的插件中包含数据源,而不是创建自定义小部件。
本文档在描述数据源和小部件时,使用以下术语:
值得注意的是,尽管您应该为度量和维度对象指定表列名,仪表盘系统与数据性质无关。这意味着在您的数据源类中,您可以灵活地决定如何生成数据,并且不一定局限于从数据库加载的数据。有一个类 ReportDataQueryBuilder 极大地简化了构建数据库驱动的数据源,但它的使用是可选的。
在创建数据库驱动的数据源时,请确保维度、维度字段和指标列都已建立索引,以实现最佳查询性能。
October CMS 包含以下部件类型:
| Type | Description |
|---|---|
| Indicator | displays a single data source metric value, such as the total number of pageviews over the selected dashboard period. |
| Table | capable of displaying multiple dimension values and metrics, like product names, numbers of units sold, and total sales amount. |
| Chart | supports line and bar charts. In line charts, the horizontal axis shows dimension values, while the vertical axis shows metric values. |
| Section Title | Shows a static section title, such as 'Traffic Information'. This widget can also display the currently selected reporting interval. |
| Text Notice | contains a static title and paragraph text to present any information related to the dashboard. |
插件可以通过使用 播种功能 在 October CMS 中创建和安装自定义仪表板。要创建一个插件仪表板,首先手动创建一个仪表板,然后使用仪表板内置的“导出仪表板”功能导出它。将导出的 JSON 文件保存在插件目录中。之后,使用 Dashboard 模型的 import 函数将 JSON 文件导入为新的仪表板。
use Backend\Models\Dashboard;
...
$content = file_get_contents(__DIR__.'/default-dashboard.json');
Dashboard::import($content, null, true);调用的第二个参数出于播种目的应始终为 null. 第三个参数指定仪表板是否应对所有用户开放. 如果设置为 false, 仪表板将仅对具有仪表板管理权限的用户开放.