Skip to main content
Version: 2026.1

Custom Extension Guides

This page indexes all extension guides across Pimcore's three layers. Each guide indicates which layers it touches so you know what to expect before diving in.

Layer legend:

  • Core - PHP/Symfony: models, config, events, DI (pimcore/pimcore)
  • Backend - Studio Backend API: endpoints, adapters, response customization (studio-backend-bundle)
  • UI - Pimcore Studio frontend: plugins, tabs, widgets, navigation (studio-ui-bundle)

Assets

GuideDescriptionLayers
Adding Asset TypesDefine custom asset types beyond the built-in setCore, UI
Asset Metadata AdaptersCustomize how asset metadata is read and writtenBackend
Editor Toolbar ButtonAdd custom buttons to editor toolbars (example uses asset editor; the same ComponentRegistry slot pattern works for data object and document editors)UI

Documents

GuideDescriptionLayers
Adding Document TypesMap custom document types to class names via configCore, Backend, UI
Adding Document EditablesCreate custom editables for document templatesCore, UI
Custom Document Type AdaptersRegister custom document type adapters for the APIBackend

Data Objects

GuideDescriptionLayers
Adding Object DatatypesAdd custom data types to Pimcore data objectsCore
Adding Object Layout TypesAdd custom layout types for data object editingCore, UI
Field Definition AdaptersCustomize how data object field definitions are processedBackend
Custom Layouts Based on Object DataDynamically select custom layouts based on object data by decorating the Studio Backend LayoutServiceBackend

API and Endpoints

GuideDescriptionLayers
Extending EndpointsAdd custom API endpoints to the Studio BackendBackend
Extending OpenAPIExtend the OpenAPI specification with custom schemasBackend
Additional and Custom AttributesEnrich API responses with custom data via PreResponse eventsBackend
Extending Updater and PatcherExtend the element update and patch pipelineBackend
API Data in PluginsFetch and use Studio Backend API data in pluginsUI

Grid, Filters, and Listings

GuideDescriptionLayers
Custom Grid ColumnsAdd custom columns to the element grid (backend definition, resolver, collector; optional frontend cell type)Backend, UI
Extending FiltersAdd custom search index and listing filtersBackend
Custom ListingBuild custom listing views in the frontendUI

UI: Navigation, Tabs, and Widgets

GuideDescriptionLayers
Getting Started with Your First PluginSet up a Studio UI plugin project from scratchUI
Main Navigation EntryAdd entries to the Pimcore Studio main navigationUI
Left Sidebar EntryAdd custom entries to the left sidebarUI
Tab ManagerRegister custom tabs in element editorsUI
Widget ManagerRegister and open custom widgets programmatically, integrate with the perspective editorUI
Context MenusAdd or modify context menu entriesUI
Dynamic TypesUse the dynamic type system for extensible renderingUI
Custom Perspective WidgetsAdd custom widget types to perspectives (schema, repository, hydrator, Widget Editor type)Backend, UI
Perspectives OverviewPerspective configuration and context menu permissionsBackend

Permissions and Security

GuideDescriptionLayers
Add Your Own PermissionsRegister custom permission keys and check them in Studio Backend (#[IsGranted]) and Studio UI (isAllowed())Core, Backend, UI
Modifying Permissions on Object DataModify element permissions based on object data using the GenericDataIndex PermissionEventCore, Backend

Icons and Appearance

GuideDescriptionLayers
Custom Icons and TooltipsOverride element tree icons and tooltips via Studio Backend pre_response.* events and CustomAttributesBackend
Custom Icons (Studio)Add custom icon sets to Pimcore StudioUI

GDPR and Compliance

GuideDescriptionLayers
GDPR Data ExtractorConfigure and extend the GDPR Data Extractor with custom data sourcesCore, Backend, UI

Models and Data

GuideDescriptionLayers
Overriding ModelsReplace default Pimcore model implementationsCore
Custom Persistent ModelsStore additional data with custom database modelsCore

System and Maintenance

GuideDescriptionLayers
Maintenance TasksRegister scheduled tasks for periodic operationsCore