---
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%81%D1%83%D0%B1%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%96'
title: 'Субмодулі | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T20:00:11+00:00'
updated: '2026-10-24T20:08:10+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: |-
  Тека modules/ містить три субмодулі. Два це малі
  пакети конфігурації: тип вмісту та тип блоку, підключені до
  конструктора. Третій це застарілий медіавибір Entity Browser,
  що передує підтримці Media Library. Ця сторінка документує
  те, що кожен встановлює, від чого він залежить, і як його ввімкнути або
  вивести з ужитку.
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:08:10+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      mainEntity: {  }
    -
      '@type': TechArticle
      headline: Субмодулі
      description: |-
        Тека modules/ містить три субмодулі. Два це малі
        пакети конфігурації: тип вмісту та тип блоку, підключені до
        конструктора. Третій це застарілий медіавибір Entity Browser,
        що передує підтримці Media Library. Ця сторінка документує
        те, що кожен встановлює, від чого він залежить, і як його ввімкнути або
        вивести з ужитку.
      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:11+0000'
      dateModified: '2026-10-24T20:08:10+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%81%D1%83%D0%B1%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%96'
      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%81%D1%83%D0%B1%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%96'
      description: |-
        Тека modules/ містить три субмодулі. Два це малі
        пакети конфігурації: тип вмісту та тип блоку, підключені до
        конструктора. Третій це застарілий медіавибір Entity Browser,
        що передує підтримці Media Library. Ця сторінка документує
        те, що кожен встановлює, від чого він залежить, і як його ввімкнути або
        вивести з ужитку.
      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) # Субмодулі.

 Вивчення 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%96%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D1%96%D1%97/%D1%82%D0%B8%D0%BF%D0%B8-%D0%B2%D0%BC%D1%96%D1%81%D1%82%D1%83)
- [Розміщення зображення з медіабібліотеки](/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%96%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D1%96%D1%97/%D0%BC%D0%B5%D0%B4%D1%96%D0%B0%D0%B1%D1%96%D0%B1%D0%BB%D1%96%D0%BE%D1%82%D0%B5%D0%BA%D0%B0)

Тека `modules/` містить три субмодулі. Два це малі пакети конфігурації: тип вмісту та тип блоку, підключені до конструктора. Третій це застарілий медіавибір Entity Browser, що передує підтримці Media Library. Ця сторінка документує те, що кожен встановлює, від чого він залежить, і як його ввімкнути або вивести з ужитку.

| Модуль | Машинне ім’я | Надає | Статус |
|---|---|---|---|
| DXPR Builder Drag and Drop Page | `dxpr_builder_page` | `drag_and_drop_page` тип вмісту | Підтримується |
| DXPR Builder Block Type | `dxpr_builder_block` | `drag_and_drop_block` тип блоку | Підтримується |
| DXPR Builder Media | `dxpr_builder_media` | Медіавибір Entity Browser | Застарілий; прихований зі сторінки Extend |

Жоден з них не є обов’язковим. Конструктор працює на будь-якому текстовому полі, чий показ перегляду використовує форматувальник **DXPR Builder**(`dxpr_builder_text`); див. [Встановлення на наявні типи вмісту](/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%BF%D0%BE%D1%87%D0%B0%D1%82%D0%BE%D0%BA-%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%B8/%D0%B2%D0%B8%D0%BA%D0%BE%D1%80%D0%B8%D1%81%D1%82%D0%B0%D0%BD%D0%BD%D1%8F-%D0%BD%D0%B0-%D1%82%D0%B8%D0%BF%D0%B0%D1%85-%D0%B2%D0%BC%D1%96%D1%81%D1%82%D1%83).

## DXPR Builder Drag and Drop Page

`modules/dxpr_builder_page` встановлює тип вмісту **Drag and Drop Page**(`node.type.drag_and_drop_page`) з `config/optional/`:

- Поле `body`, з типовим показом перегляду, що використовує форматувальник `dxpr_builder_text`, і показом форми, згрупованим за допомогою Field Group.
- Три поля DXPR Theme: `field_dth_hide_regions`, `field_dth_main_content_width` і `field_dth_page_layout`. Вони встановлюються лише коли існують їхні сховища полів, які надає модуль DXPR Theme Helper.

Залежності з `dxpr_builder_page.info.yml`: `field_group`, `text`, `node` і `dxpr_builder`. `hook_install()` створює сховище поля `body`, коли його немає. Коли необов’язкова конфігурація не може встановитися, як на профілі Minimal, він встановлює тип, поле body та покази сам, без частин `menu_ui` і `path`. `dxpr_builder_page_update_8001()` позначає встановлену конфігурацію як примушену модулем.

`src/DXPRBuilderPageUninstallValidator.php` (зареєстрований у `dxpr_builder_page.services.yml`) блокує деінсталяцію, доки існує будь-яка нода `drag_and_drop_page`. Спершу видаліть ці ноди або змініть їхній тип.

1. Увімкніть модуль:

    ```bash
    drush en dxpr_builder_page -y

    ```
2. Створіть сторінку за шляхом `/node/add/drag_and_drop_page`. Конструктор стартує на полі body, коли сторінку переглядає редактор.

Якщо ввімкнення не вдається з «unmet dependencies», увімкніть Field Group і перевірте, що сховище поля `body` існує; див. [Проблеми після оновлення](/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%83%D1%81%D1%83%D0%BD%D0%B5%D0%BD%D0%BD%D1%8F-%D0%BD%D0%B5%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9/%D0%BF%D1%96%D1%81%D0%BB%D1%8F-%D0%BE%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%BD%D1%8F).

## DXPR Builder Block Type

`modules/dxpr_builder_block` встановлює тип блоку **Drag and Drop Block**(`block_content.type.drag_and_drop_block`) з `config/optional/`, з полем `body`, форматувальником `dxpr_builder_text`на типовому показі перегляду, і показом форми. Тип має ввімкнене **Create new revision**, а `dxpr_builder_block_update_8002()` вмикає його для старіших встановлень, тож кожне збереження конструктором на блоці створює ревізію (див. [Стейджинг вмісту](/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%B4%D0%BE%D0%B4%D0%B0%D1%82%D0%BA%D0%BE%D0%B2%D0%BE/%D1%81%D1%82%D0%B5%D0%B9%D0%B4%D0%B6%D0%B8%D0%BD%D0%B3-%D0%B2%D0%BC%D1%96%D1%81%D1%82%D1%83)).

Залежності: `text`, `node` і `dxpr_builder`.

1. Увімкніть модуль:

    ```bash
    drush en dxpr_builder_block -y

    ```
2. Створіть блок за шляхом `/block/add/drag_and_drop_block`.
3. Помістіть його в регіон. Редактори редагують його на місці на будь-якій сторінці, де він з’являється.

`dxpr_builder_entity_type_alter()` підміняє власний клас модуля `Drupal\dxpr_builder\Entity\BlockContent`, як і для `Node`. Клас зберігає порожній рядок у порожні поля конструктора, тож редактор завжди має до чого приєднатися. Тип блоку, який ви створюєте самі, тому працює так само, коли його показ перегляду використовує форматувальник DXPR Builder.

## DXPR Builder Media

`modules/dxpr_builder_media` це вибір зображень на основі Entity Browser, який модуль використовував до підтримки Media Library ядра. Його позначено `hidden: true` у його `.info.yml`, тож він не з’являється у **Extend**; ви все одно можете ввімкнути його за допомогою Drush. Він встановлює:

- `entity_browser.browser.dxpr_builder_media_modal`: модальний браузер із міткою **DXPR Builder Image Browser** із двома віджетами, вкладкою **Media Library**, підпертою поданням `dxpr_builder_media`і вкладкою **Upload new image**, що створює медіасутність `image`через Inline Entity Form.
- `views.view.dxpr_builder_media`: медіасітка для першого віджета.
- `image.style.dxpr_builder_media_thumbnail`: стиль масштабування-й-обрізання 300 на 300 пікселів для сітки.
- Бібліотеки `view`, `claro_style` і `gin_style`(`dxpr_builder_media.libraries.yml`). Модуль приєднує таблицю стилів Gin до подання, коли активна тема це Gin або заснована на ній, і таблицю стилів Claro інакше.

Залежності: `inline_entity_form`, `entity_browser`, `entity_browser_entity_form`, `media`, `media_library` і `views`. Під час встановлення модуль встановлює `media_browser` у `dxpr_builder.settings` у `dxpr_builder_media_modal`; під час деінсталяції він встановлює його в порожній рядок (**Basic file upload**) і видаляє стиль зображення.

Рекомендований браузер це Media Library ядра, який не потребує субмодуля:

1. Деінсталюйте застарілий модуль, якщо його ввімкнено:

    ```bash
    drush pm:uninstall dxpr_builder_media -y

    ```
2. Перейдіть до **DXPR Studio &gt; DXPR Builder &gt; General Settings**(`/admin/dxpr_studio/dxpr_builder/settings`) і відкрийте **Media**.
3. Установіть **Browser type** у **Media Library** і натисніть **Save settings**. Деінсталяція скинула його в **Basic file upload**.

Тримайте субмодуль лише на сайті, який залежить від Entity Browser, що повертає ID файлів; див. [Зображення не завантажуються або зникають](/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%83%D1%81%D1%83%D0%BD%D0%B5%D0%BD%D0%BD%D1%8F-%D0%BD%D0%B5%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D0%B5%D0%B9/%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%BD%D1%8F-%D1%96-%D0%BC%D0%B5%D0%B4%D1%96%D0%B0)щодо помилок, які створює невідповідний браузер. Модуль несе єдиний PHPUnit-тест репозиторію, `tests/src/FunctionalJavascript/MediaEntityBrowserTest.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/%D1%80%D0%BE%D0%B7%D1%80%D0%BE%D0%B1%D0%BA%D0%B0/%D1%82%D0%B5%D1%81%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F).

## Увімкнення кількох одразу

```bash
drush en dxpr_builder_page dxpr_builder_block -y

```

Кожен субмодуль незалежний від інших.

## Що далі?

- [Типи вмісту](/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%96%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D1%96%D1%97/%D1%82%D0%B8%D0%BF%D0%B8-%D0%B2%D0%BC%D1%96%D1%81%D1%82%D1%83) для використання конструктора на власних типах вмісту.
- [Інтеграція Media Library](/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%96%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D1%86%D1%96%D1%97/%D0%BC%D0%B5%D0%B4%D1%96%D0%B0%D0%B1%D1%96%D0%B1%D0%BB%D1%96%D0%BE%D1%82%D0%B5%D0%BA%D0%B0) для рекомендованого вибору зображень.