---
url: 'https://dxpr.com/uk/hc/%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D1%96%D1%8F/%D0%BD%D0%B0%D0%B2%D1%87%D0%B0%D0%BD%D0%BD%D1%8F-dxpr-builder/%D1%80%D0%BE%D0%B7%D1%80%D0%BE%D0%B1%D0%BA%D0%B0/%D1%85%D1%83%D0%BA%D0%B8-api'
title: 'Довідник Hooks API | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T20:00:14+00:00'
updated: '2026-10-24T20:15:47+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: |-
  DXPR Builder має п’ять хуків. dxpr_builder.api.php документує всі
  п’ять, із прикладом кожного.
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-24T20:15:47+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      mainEntity: {  }
    -
      '@type': TechArticle
      headline: 'Довідник Hooks API'
      description: |-
        DXPR Builder має п’ять хуків. dxpr_builder.api.php документує всі
        п’ять, із прикладом кожного.
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-24T20:00:14+0000'
      dateModified: '2026-10-24T20:15:47+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/uk/hc/%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D1%96%D1%8F/%D0%BD%D0%B0%D0%B2%D1%87%D0%B0%D0%BD%D0%BD%D1%8F-dxpr-builder/%D1%80%D0%BE%D0%B7%D1%80%D0%BE%D0%B1%D0%BA%D0%B0/%D1%85%D1%83%D0%BA%D0%B8-api'
      articleSection: 'Архітектура та API'
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/uk/hc/%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D1%96%D1%8F/%D0%BD%D0%B0%D0%B2%D1%87%D0%B0%D0%BD%D0%BD%D1%8F-dxpr-builder/%D1%80%D0%BE%D0%B7%D1%80%D0%BE%D0%B1%D0%BA%D0%B0/%D1%85%D1%83%D0%BA%D0%B8-api'
      description: |-
        DXPR Builder має п’ять хуків. dxpr_builder.api.php документує всі
        п’ять, із прикладом кожного.
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: Home
            item: 'https://dxpr.com/uk'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: uk
---
[Help Center](/uk/hc)/[Documentation](/uk/hc/%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D1%96%D1%8F) /[Вивчення DXPR Builder](/uk/hc/documentation/learn-dxpr-builder) /[Розширення](/uk/hc/documentation/learn-dxpr-builder/extend) /[Архітектура та API](/uk/hc/documentation/learn-dxpr-builder/extend/architecture) # Довідник Hooks API.

 Вивчення DXPR BuilderРозширенняАрхітектура та API

   ## In this guide

 Related guides

- [Дозволи](/uk/hc/%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D1%96%D1%8F/%D0%BD%D0%B0%D0%B2%D1%87%D0%B0%D0%BD%D0%BD%D1%8F-dxpr-builder/%D1%80%D0%BE%D0%B7%D1%80%D0%BE%D0%B1%D0%BA%D0%B0/%D0%B4%D0%BE%D0%B7%D0%B2%D0%BE%D0%BB%D0%B8)
- [Довідник API](/uk/hc/%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D1%96%D1%8F/%D0%BD%D0%B0%D0%B2%D1%87%D0%B0%D0%BD%D0%BD%D1%8F-dxpr-builder/%D1%80%D0%BE%D0%B7%D1%80%D0%BE%D0%B1%D0%BA%D0%B0/api)

DXPR Builder має п’ять хуків. `dxpr_builder.api.php` документує всі п’ять, із прикладом кожного.

| Хук | Викликається з | Ефект |
|---|---|---|
| `hook_dxpr_builder_classes_alter(&$classes)` | `DxprBuilderService::editorAttach()` | Додає класи до списку **HTML classes** у редакторі |
| `hook_dxpr_builder_icon_sets_alter(array &$icon_sets)` | `DxprBuilderService::getIconSets()` | Додає, змінює або вилучає набори піктограм у виборі піктограм |
| `hook_dxpr_builder_view_elements(array &$element)` | `DxprBuilderFormatter::viewElements()` | Змінює рендер-масив кожного поля, показаного з форматувальником DXPR Builder |
| `hook_dxpr_builder_element_buttons_folders_alter(&$folders)` | `DxprBuilderService::getButtonStyles()` | Без видимого ефекту; див. нижче |
| `hook_dxpr_builder_elements_folders_alter(&$folders)` | `DxprBuilderService::getDxprElementsFolders()` | Без видимого ефекту; див. нижче |

## hook\_dxpr\_builder\_classes\_alter

Додає записи до списку класів, який пропонує поле **HTML classes**кожного елемента. Код викликає його через `$this->moduleHandler->alter('dxpr_builder_classes', ...)`, тож ім’я функції закінчується на `_alter`; функція з іменем `mymodule_dxpr_builder_classes()` ніколи не викликається.

```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): ключ це одне ім’я класу, або кілька, розділених пробілами; значення це мітка. Ключ, що починається з `optgroup-`, починає групу параметрів.

Масив уже містить класи кожної ввімкненої теми, яка встановлює `dxpr_builder_classes` у своєму `.info.yml`, тож тема не потребує PHP. Див. [Службові класи](/uk/hc/%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D1%96%D1%8F/%D0%BD%D0%B0%D0%B2%D1%87%D0%B0%D0%BD%D0%BD%D1%8F-dxpr-builder/%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F/%D1%81%D0%BB%D1%83%D0%B6%D0%B1%D0%BE%D0%B2%D1%96-%D0%BA%D0%BB%D0%B0%D1%81%D0%B8).

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

Запускається після того, як модуль об’єднав кожен файл `*.dxpr_icon_sets.yml`увімкнених модулів і тем. Надавайте перевагу файлу YAML; використовуйте хук, коли список залежить від логіки часу виконання.

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

```

Хук запускається після того, як відносні шляхи `css` з файлів YAML розв’язано, тож набір, доданий тут, потребує шляху від кореня Drupal, як у прикладі. Ключі набору піктограм і 14 вбудованих наборів перелічено на сторінці [Власні набори піктограм](/uk/hc/%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D1%96%D1%8F/%D0%BD%D0%B0%D0%B2%D1%87%D0%B0%D0%BD%D0%BD%D1%8F-dxpr-builder/%D1%80%D0%BE%D0%B7%D1%80%D0%BE%D0%B1%D0%BA%D0%B0/%D0%BD%D0%B0%D0%B1%D0%BE%D1%80%D0%B8-%D0%BF%D1%96%D0%BA%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D0%BC).

## hook\_dxpr\_builder\_view\_elements

Викликається з `invokeAll()` наприкінці `DxprBuilderFormatter::viewElements()`, після того як форматувальник приєднав свої бібліотеки, налаштування та профіль. `$element` це рендер-масив поля, переданий за посиланням. Він запускається для кожного глядача, редактора чи ні.

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

```

## Хуки без видимого ефекту

- `hook_dxpr_builder_element_buttons_folders_alter()` отримує список тек, чиї файли `.html` описують стилі кнопок. Результат досягає `drupalSettings.dxprBuilder.buttonStyles`. Елемент Button читає власний фіксований список стилів Bootstrap натомість, тож додаткові теки нічого не змінюють у редакторі.
- `hook_dxpr_builder_elements_folders_alter()` змінив би список тек `elements` у темах, але ніщо не викликає `getDxprElementsFolders()`, тож хук ніколи не запускається. Він не реєструє елементів; щоб додати один, див. [Власні елементи](/uk/hc/%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D1%96%D1%8F/%D0%BD%D0%B0%D0%B2%D1%87%D0%B0%D0%BD%D0%BD%D1%8F-dxpr-builder/%D1%80%D0%BE%D0%B7%D1%80%D0%BE%D0%B1%D0%BA%D0%B0/%D0%B2%D0%BB%D0%B0%D1%81%D0%BD%D1%96-%D0%B5%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%B8).

## Що далі?

- [Дозволи](/uk/hc/%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D1%96%D1%8F/%D0%BD%D0%B0%D0%B2%D1%87%D0%B0%D0%BD%D0%BD%D1%8F-dxpr-builder/%D1%80%D0%BE%D0%B7%D1%80%D0%BE%D0%B1%D0%BA%D0%B0/%D0%B4%D0%BE%D0%B7%D0%B2%D0%BE%D0%BB%D0%B8) для дозволів, які визначає модуль.
- [Довідник API](/uk/hc/%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D1%96%D1%8F/%D0%BD%D0%B0%D0%B2%D1%87%D0%B0%D0%BD%D0%BD%D1%8F-dxpr-builder/%D1%80%D0%BE%D0%B7%D1%80%D0%BE%D0%B1%D0%BA%D0%B0/api) для служб і маршрутів.