Skip to main content
Version: Next

Configuration

The Studio Dashboards Bundle is configured under the pimcore_studio_dashboards key. All settings live in your Symfony configuration files (e.g. config/packages/pimcore_studio_dashboards.yaml) or in the Pimcore configuration directory for user-editable storage.

Widget Types

Control which widget types are available in the add-widget dialog:

pimcore_studio_dashboards:
widget_types:
- 'wysiwyg'
- 'notifications'
- 'recently_modified'
- 'last_changes'

Remove an entry to hide that widget type for all users. Custom widget types added by third-party bundles are registered the same way - see Creating Custom Widgets.

Layout Options

Users choose a layout when adding a new row to a dashboard. Each layout defines a grid structure as a named set of CSS-grid cell definitions:

pimcore_studio_dashboards:
layout_options:
layout_default:
rows: 3
columns: 8
items:
- { id: 1, col_span: 2, row_span: 1, col_start: 1, row_start: 1 }
- { id: 2, col_span: 2, row_span: 2, col_start: 1, row_start: 2 }
- { id: 3, col_span: 6, row_span: 3, col_start: 3, row_start: 1 }
FieldDescription
rowsTotal number of rows in the grid
columnsTotal number of columns in the grid
items[].idWidget slot identifier (referenced in dashboard configs)
items[].col_spanHow many columns the slot spans
items[].row_spanHow many rows the slot spans
items[].col_startStarting column (1-based)
items[].row_startStarting row (1-based)

The bundle ships with five pre-defined layouts (layout_default, layout_1layout_4). Add new entries to offer additional layout options to users.

Default Dashboard

Pre-configure a dashboard that is shown to every user without any manual setup.

note

The default dashboard is configured as a top-level YAML key, not nested under pimcore_studio_dashboards:. Place it in a dedicated file such as config/pimcore/default_dashboard.yaml.

studio_default_dashboard:
id: "studio_default_dashboard"
name: "Default Dashboard"
owner: 0
shareGlobally: true
menuShortcutGroup: null
rows:
- layout_id: "layout_default"
widgets:
- type: wysiwyg
position: 1
id: 1f063aa2_615c_6edc_bc45_a174d6b82eb6
name: "System News"
wysiwyg: "Replace with actual news content"
icon:
type: name
value: crm
color: White
visualization: null
- type: last_changes
position: 2
id: 1f06869f_5ca0_624c_857d_bdde539a9bcf
name: "Changes in the last 30 days"
icon:
type: name
value: history
color: White
visualization: line_chart
isWriteable: false

Set isWriteable: false to prevent users from modifying or deleting the default dashboard. Set shareGlobally: true to make it visible to all users automatically.

Widget-Specific Configuration

Each built-in widget type stores its per-widget configuration in the Pimcore configuration directory. The <widget-id> key in the examples below is a unique identifier for the widget instance - use a UUID v4 (e.g. 1f063aa2_615c_6edc_bc45_a174d6b82eb6) or any string that is unique within the type. This ID must match the id field in the dashboard definition row's widget list.

The following options are available when pre-configuring widget instances via YAML.

WYSIWYG Widget

pimcore_studio_dashboards:
wysiwyg_widgets:
<widget-id>:
wysiwyg: "<p>HTML content shown in the widget</p>"
name: "My Note"
icon:
type: name # 'name' for icon identifier, 'path' for custom image path
value: info
color: White
visualization: null

Notifications Widget

pimcore_studio_dashboards:
notifications_widgets:
<widget-id>:
page: 1
pageSize: 50
dateFilterValue: null
dateFilterOperator: null
senderFilter: null
typeFilter: null
onlyUnread: false
name: "My Notifications"
icon:
type: name
value: bell
color: White
visualization: null

Recently Modified Widget

pimcore_studio_dashboards:
recently_modified_widgets:
<widget-id>:
elementType: asset # 'asset', 'document', or 'data_object'
name: "Recently Modified Assets"
icon:
type: name
value: folder
color: White
visualization: null

Last Changes Widget

pimcore_studio_dashboards:
last_changes_widgets:
<widget-id>:
showAssets: true
showDataObjects: true
showDocuments: true
name: "Last 30 Days"
icon:
type: name
value: history
color: White
visualization: line_chart # 'table' or 'line_chart'

Custom Reports Widget

The Custom Reports widget is enabled automatically when PimcoreCustomReportsBundle is present. No additional configuration is needed. Any published Custom Report is available for selection in the widget configuration dialog.

Configuration Storage

Widget configurations and dashboard definitions are stored via Pimcore's LocationAwareConfigRepository, which supports reading from YAML files and writing back to the Pimcore configuration directory. The storage locations are:

DataDefault path
Dashboard definitionsvar/config/studio_dashboards/
WYSIWYG widget configsvar/config/studio_dashboards_widgets/wysiwyg_widgets/
Notifications widget configsvar/config/studio_dashboards_widgets/notifications_widgets/
Recently Modified widget configsvar/config/studio_dashboards_widgets/recently_modified_widgets/
Last Changes widget configsvar/config/studio_dashboards_widgets/last_changes_widgets/
Custom Reports widget configsvar/config/studio_dashboards_widgets/custom_reports_widgets/

Commit these YAML files to version control for reproducible setups. Storage paths are overridable via Symfony configuration - see Pimcore's LocationAwareConfigRepository documentation for details.