---
url: 'https://dxpr.com/pl/hc/dokumentacja/nauka-dxpr-builder/programowanie/api-hookow'
title: 'Dokumentacja hooków API | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T11:38:37+00:00'
updated: '2026-10-24T17:19:22+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: |-
  Kreator DXPR ma pięć hooków. dxpr_builder.api.php dokumentuje wszystkie
  pięć, z przykładem każdego.
tags:
  - 'Architecture and APIs'
image: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
published: true
og:
  site_name: DXPR
  updated_time: '2026-10-24T17:19:22+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      mainEntity: {  }
    -
      '@type': TechArticle
      headline: 'Dokumentacja hooków API'
      description: |-
        Kreator DXPR ma pięć hooków. dxpr_builder.api.php dokumentuje wszystkie
        pięć, z przykładem każdego.
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-24T11:38:37+0000'
      dateModified: '2026-10-24T17:19:22+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/pl/hc/dokumentacja/nauka-dxpr-builder/programowanie/api-hookow'
      articleSection: 'Architektura i API'
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/pl/hc/dokumentacja/nauka-dxpr-builder/programowanie/api-hookow'
      description: |-
        Kreator DXPR ma pięć hooków. dxpr_builder.api.php dokumentuje wszystkie
        pięć, z przykładem każdego.
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: 'Strona Główna'
            item: 'https://dxpr.com/pl'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: pl
---
[Centrum pomocy](/pl/hc)/[Dokumentacja](/pl/hc/dokumentacja) /[Poznaj DXPR Builder](/pl/hc/documentation/learn-dxpr-builder) /[Rozszerzenia](/pl/hc/documentation/learn-dxpr-builder/extend) /[Architektura i API](/pl/hc/documentation/learn-dxpr-builder/extend/architecture) # Dokumentacja hooków API.

 Poznaj DXPR BuilderRozszerzeniaArchitektura i API

   ## W tym przewodniku

 Powiązane przewodniki

- [Uprawnienia](/pl/hc/dokumentacja/nauka-dxpr-builder/programowanie/uprawnienia)
- [Dokumentacja API](/pl/hc/dokumentacja/nauka-dxpr-builder/programowanie/dokumentacja-api)

Kreator DXPR ma pięć hooków. `dxpr_builder.api.php` dokumentuje wszystkie pięć, z przykładem każdego.

| Hook | Wywoływany z | Skutek |
|---|---|---|
| `hook_dxpr_builder_classes_alter(&$classes)` | `DxprBuilderService::editorAttach()` | Dodaje klasy do listy **HTML classes** w edytorze |
| `hook_dxpr_builder_icon_sets_alter(array &$icon_sets)` | `DxprBuilderService::getIconSets()` | Dodaje, zmienia albo usuwa zestawy ikon w wybieraku ikon |
| `hook_dxpr_builder_view_elements(array &$element)` | `DxprBuilderFormatter::viewElements()` | Modyfikuje tablicę renderującą każdego pola pokazanego formaterem kreatora DXPR |
| `hook_dxpr_builder_element_buttons_folders_alter(&$folders)` | `DxprBuilderService::getButtonStyles()` | Brak widocznego skutku; zobacz poniżej |
| `hook_dxpr_builder_elements_folders_alter(&$folders)` | `DxprBuilderService::getDxprElementsFolders()` | Brak widocznego skutku; zobacz poniżej |

## hook\_dxpr\_builder\_classes\_alter

Dodaje wpisy do listy klas oferowanej przez pole **HTML classes**każdego elementu. Kod wywołuje go przez `$this->moduleHandler->alter('dxpr_builder_classes', ...)`, więc nazwa funkcji kończy się na `_alter`; funkcja o nazwie `mymodule_dxpr_builder_classes()` nigdy nie jest wywoływana.

```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` (tablica): klucz to jedna nazwa klasy albo kilka oddzielonych spacjami; wartość to etykieta. Klucz zaczynający się od `optgroup-` zaczyna grupę opcji.

Tablica zawiera już klasy każdego włączonego motywu ustawiającego `dxpr_builder_classes` w swoim `.info.yml`, więc motyw nie potrzebuje PHP. Zobacz [klasy narzędziowe](/pl/hc/dokumentacja/nauka-dxpr-builder/dostosowanie/klasy-narzedziowe).

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

Uruchamia się po scaleniu przez moduł każdego pliku `*.dxpr_icon_sets.yml`włączonych modułów i motywów. Wybierz plik YAML; hooka użyj, gdy lista zależy od logiki runtime.

```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',
    ],
  ];
}

```

Hook uruchamia się po rozwiązaniu względnych ścieżek `css` z plików YAML, więc zestaw dodany tutaj potrzebuje ścieżki od głównego katalogu Drupala, jak w przykładzie. Klucze zestawu ikon i 14 wbudowanych zestawów wymieniono na stronie [własnych zestawów ikon](/pl/hc/dokumentacja/nauka-dxpr-builder/programowanie/zestawy-ikon).

## hook\_dxpr\_builder\_view\_elements

Wywoływany przez `invokeAll()` na końcu `DxprBuilderFormatter::viewElements()`, po dołączeniu przez formater jego bibliotek, ustawień i profilu. `$element` to tablica renderująca pola, przekazana przez referencję. Działa dla każdego przeglądającego, redaktora czy nie.

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

```

## Hooki bez widocznego skutku

- `hook_dxpr_builder_element_buttons_folders_alter()` otrzymuje listę katalogów, których pliki `.html` opisują style przycisków. Wynik dociera do `drupalSettings.dxprBuilder.buttonStyles`. Element Button odczytuje zamiast tego własną stałą listę stylów Bootstrapa, więc dodatkowe katalogi nic nie zmieniają w edytorze.
- `hook_dxpr_builder_elements_folders_alter()` zmodyfikowałby listę katalogów `elements` w motywach, ale nic nie wywołuje `getDxprElementsFolders()`, więc hook nigdy nie działa. Nie rejestruje elementów; aby dodać jeden, zobacz [własne elementy](/pl/hc/dokumentacja/nauka-dxpr-builder/programowanie/wlasne-elementy).

## Co dalej?

- [Uprawnienia](/pl/hc/dokumentacja/nauka-dxpr-builder/programowanie/uprawnienia) dla uprawnień definiowanych przez moduł.
- [Dokumentacja API](/pl/hc/documentation/learn-dxpr-builder/development/api) dla usług i tras.