---
url: 'https://dxpr.com/de/hc/documentation/learn-dxpr-builder/development/hooks-api'
title: 'Hooks-API-Referenz | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T04:04:46+00:00'
updated: '2026-10-24T09:09:48+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: |-
  DXPR Builder hat fünf Hooks. dxpr_builder.api.php dokumentiert alle
  fünf, mit je einem Beispiel.
tags:
  - 'Architectuur en API’s'
image: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
published: true
og:
  site_name: DXPR
  updated_time: '2026-10-24T09:09:48+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      mainEntity: {  }
    -
      '@type': TechArticle
      headline: Hooks-API-Referenz
      description: |-
        DXPR Builder hat fünf Hooks. dxpr_builder.api.php dokumentiert alle
        fünf, mit je einem Beispiel.
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-24T04:04:46+0000'
      dateModified: '2026-10-24T09:09:48+0000'
      author:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
        url: 'https://dxpr.com/'
        logo:
          '@type': ImageObject
          url: 'https://dxpr.com/themes/custom/dxpr_com/dxpr-logo-dark.svg'
          width: '1348'
          height: '501'
      mainEntityOfPage: 'https://dxpr.com/de/hc/documentation/learn-dxpr-builder/development/hooks-api'
      articleSection: 'Architectuur en API’s'
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/de/hc/documentation/learn-dxpr-builder/development/hooks-api'
      description: |-
        DXPR Builder hat fünf Hooks. dxpr_builder.api.php dokumentiert alle
        fünf, mit je einem Beispiel.
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: Startseite
            item: 'https://dxpr.com/de'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: de
---
[Help Center](/de/hc)/[Documentation](/de/hc/documentation) /[Learn DXPR Builder](/hc/documentation/learn-dxpr-builder) /[Extend](/hc/documentation/learn-dxpr-builder/extend) /[Architectuur en API’s](/hc/documentation/learn-dxpr-builder/extend/architecture) # Hooks-API-Referenz.

 Learn DXPR BuilderExtendArchitectuur en API’s

   ## In this guide

 Related guides

- [Berechtigungen](/de/hc/documentation/learn-dxpr-builder/development/permissions)
- [API-Referenz](/de/hc/documentation/learn-dxpr-builder/development/api)

DXPR Builder hat fünf Hooks. `dxpr_builder.api.php` dokumentiert alle fünf, mit je einem Beispiel.

| Hook | Aufgerufen aus | Wirkung |
|---|---|---|
| `hook_dxpr_builder_classes_alter(&$classes)` | `DxprBuilderService::editorAttach()` | Fügt Klassen zur Liste **HTML classes** im Editor hinzu |
| `hook_dxpr_builder_icon_sets_alter(array &$icon_sets)` | `DxprBuilderService::getIconSets()` | Fügt Icon-Sets in der Icon-Auswahl hinzu, ändert oder entfernt sie |
| `hook_dxpr_builder_view_elements(array &$element)` | `DxprBuilderFormatter::viewElements()` | Ändert das Render-Array jedes Felds, das mit dem DXPR-Builder-Formatierer gezeigt wird |
| `hook_dxpr_builder_element_buttons_folders_alter(&$folders)` | `DxprBuilderService::getButtonStyles()` | Keine sichtbare Wirkung; siehe unten |
| `hook_dxpr_builder_elements_folders_alter(&$folders)` | `DxprBuilderService::getDxprElementsFolders()` | Keine sichtbare Wirkung; siehe unten |

## hook\_dxpr\_builder\_classes\_alter

Fügt Einträge zur Klassenliste hinzu, die das Feld **HTML classes**jedes Elements bietet. Der Code ruft ihn über `$this->moduleHandler->alter('dxpr_builder_classes', ...)` auf, daher endet der Funktionsname auf `_alter`; eine Funktion namens `mymodule_dxpr_builder_classes()` wird nie aufgerufen.

```php
/**
 * Implements hook_dxpr_builder_classes_alter().
 */
function mymodule_dxpr_builder_classes_alter(&$dxpr_builder_classes) {
  // Start a new option group.
  $dxpr_builder_classes['optgroup-brand'] = t('Brand styles');
  $dxpr_builder_classes['brand-primary-bg'] = t('Primary background');
  $dxpr_builder_classes['brand-accent-text'] = t('Accent text colour');
}

```

- `&$dxpr_builder_classes` (Array): Der Schlüssel ist ein Klassenname, oder mehrere per Leerzeichen getrennt; der Wert ist die Bezeichnung. Ein Schlüssel, der mit `optgroup-` beginnt, startet eine Optionsgruppe.

Das Array hält bereits die Klassen jedes aktivierten Themes, das `dxpr_builder_classes` in seiner `.info.yml` setzt, daher braucht ein Theme kein PHP. Siehe [Dienstklassen](/de/hc/documentation/learn-dxpr-builder/customization/utility-classes).

## hook\_dxpr\_builder\_icon\_sets\_alter

Läuft, nachdem das Modul jede `*.dxpr_icon_sets.yml`-Datei der aktivierten Module und Themes gemergt hat. Bevorzugen Sie die YAML-Datei; nutzen Sie den Hook, wenn die Liste von Lauflogik abhängt.

```php
/**
 * Implements hook_dxpr_builder_icon_sets_alter().
 */
function mymodule_dxpr_builder_icon_sets_alter(array &$icon_sets) {
  $module_path = \Drupal::service('extension.list.module')
    ->getPath('mymodule');
  $icon_sets['material'] = [
    'label' => t('Material Symbols'),
    'prefix' => 'material-symbols',
    'css' => $module_path . '/vendor/material-symbols.css',
    'library' => 'mymodule/material_symbols',
    'icons' => [
      'material-symbols material-symbols-star',
      'material-symbols material-symbols-home',
    ],
  ];
}

```

Der Hook läuft, nachdem relative `css`-Pfade aus den YAML-Dateien aufgelöst wurden, daher braucht ein hier hinzugefügtes Set einen Pfad ab Drupal-Root, wie im Beispiel. Die Schlüssel eines Icon-Sets und die 14 eingebauten Sets stehen auf [Eigene Icon-Sets](/de/hc/documentation/learn-dxpr-builder/development/icon-sets).

## hook\_dxpr\_builder\_view\_elements

Aufgerufen mit `invokeAll()` am Ende von `DxprBuilderFormatter::viewElements()`, nachdem der Formatierer seine Bibliotheken, Einstellungen und Profile angehängt hat. `$element` ist das Render-Array des Felds, per Referenz übergeben. Es läuft für alle Betrachtenden, ob mit oder ohne Bearbeitungszugang.

```php
/**
 * Implements hook_dxpr_builder_view_elements().
 */
function mymodule_dxpr_builder_view_elements(array &$element) {
  $element['#attached']['library'][] = 'mymodule/builder_extras';
}

```

## Hooks ohne sichtbare Wirkung

- `hook_dxpr_builder_element_buttons_folders_alter()` erhält eine Liste von Ordnern, deren `.html`-Dateien Schaltflächenstile beschreiben. Das Ergebnis erreicht `drupalSettings.dxprBuilder.buttonStyles`. Das Button-Element liest stattdessen seine eigene feste Liste Bootstrap-Stile, daher ändern zusätzliche Ordner nichts im Editor.
- `hook_dxpr_builder_elements_folders_alter()` würde eine Liste von `elements`-Ordnern in Themes ändern, aber nichts ruft `getDxprElementsFolders()` auf, daher läuft der Hook nie. Er registriert keine Elemente; um eines hinzuzufügen, siehe [Eigene Elemente erstellen](/de/hc/documentation/learn-dxpr-builder/development/custom-elements).

## Wie geht es weiter?

- [Berechtigungen](/de/hc/documentation/learn-dxpr-builder/development/permissions) für die Berechtigungen, die das Modul definiert.
- [API-Referenz](/de/hc/documentation/learn-dxpr-builder/development/api) für Dienste und Routen.