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 }
| Field | Description |
|---|---|
rows | Total number of rows in the grid |
columns | Total number of columns in the grid |
items[].id | Widget slot identifier (referenced in dashboard configs) |
items[].col_span | How many columns the slot spans |
items[].row_span | How many rows the slot spans |
items[].col_start | Starting column (1-based) |
items[].row_start | Starting row (1-based) |
The bundle ships with five pre-defined layouts (layout_default, layout_1 – layout_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.
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:
| Data | Default path |
|---|---|
| Dashboard definitions | var/config/studio_dashboards/ |
| WYSIWYG widget configs | var/config/studio_dashboards_widgets/wysiwyg_widgets/ |
| Notifications widget configs | var/config/studio_dashboards_widgets/notifications_widgets/ |
| Recently Modified widget configs | var/config/studio_dashboards_widgets/recently_modified_widgets/ |
| Last Changes widget configs | var/config/studio_dashboards_widgets/last_changes_widgets/ |
| Custom Reports widget configs | var/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.