---
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/%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%BC%D1%96%D0%B3%D1%80%D0%B0%D1%86%D1%96%D1%8F-%D0%B7-1x-%D0%BD%D0%B0-3x'
title: 'Міграція з DXPR Builder 1.x або 2.x | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T20:07:02+00:00'
updated: '2026-10-24T20:08:10+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: |-
  DXPR Builder 3.x оновлюється на місці з будь-якого релізу
  1.x або 2.x. Composer замінює код, а
  drush updatedb виконує хуки оновлення у файлі
  dxpr_builder.install, що перетворюють конфігурацію
  та вміст. Ця сторінка перелічує дії цих хуків,
  зміни для власного коду та спосіб перевірки
  результату.
tags:
  - 'Move from another builder'
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: 'Міграція з DXPR Builder 1.x або 2.x'
      description: |-
        DXPR Builder 3.x оновлюється на місці з будь-якого релізу
        1.x або 2.x. Composer замінює код, а
        drush updatedb виконує хуки оновлення у файлі
        dxpr_builder.install, що перетворюють конфігурацію
        та вміст. Ця сторінка перелічує дії цих хуків,
        зміни для власного коду та спосіб перевірки
        результату.
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-24T20:07:02+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/%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%BC%D1%96%D0%B3%D1%80%D0%B0%D1%86%D1%96%D1%8F-%D0%B7-1x-%D0%BD%D0%B0-3x'
      articleSection: 'Перехід з іншого конструктора'
    -
      '@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/%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%BC%D1%96%D0%B3%D1%80%D0%B0%D1%86%D1%96%D1%8F-%D0%B7-1x-%D0%BD%D0%B0-3x'
      description: |-
        DXPR Builder 3.x оновлюється на місці з будь-якого релізу
        1.x або 2.x. Composer замінює код, а
        drush updatedb виконує хуки оновлення у файлі
        dxpr_builder.install, що перетворюють конфігурацію
        та вміст. Ця сторінка перелічує дії цих хуків,
        зміни для власного коду та спосіб перевірки
        результату.
      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/start-here) /[Перехід з іншого конструктора](/uk/hc/documentation/learn-dxpr-builder/migration) # Міграція з DXPR Builder 1.x або 2.x.

 Вивчення DXPR BuilderПочніть звідсиПерехід з іншого конструктора

   ## In this guide

 Related guides

- [Оновлення DXPR Builder](/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%BE%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%BD%D1%8F)
- [Журнал змін](/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%B6%D1%83%D1%80%D0%BD%D0%B0%D0%BB-%D0%B7%D0%BC%D1%96%D0%BD)
- [Довідник: параметри конфігурації](/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%B2%D1%96%D0%B4%D0%BD%D0%B8%D0%BA/%D0%B4%D0%BE%D0%B2%D1%96%D0%B4%D0%BD%D0%B8%D0%BA-%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D1%8C)

DXPR Builder 3.x оновлюється на місці з будь-якого релізу 1.x або 2.x. Composer замінює код, а `drush updatedb` виконує хуки оновлення у файлі `dxpr_builder.install`, що перетворюють конфігурацію та вміст. Ця сторінка перелічує дії цих хуків, зміни для власного коду та спосіб перевірки результату. Дати релізів узято з тегів git; див. [Старіші релізи](/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/%D1%81%D1%82%D0%B0%D1%80%D1%96%D1%88%D1%96-%D1%80%D0%B5%D0%BB%D1%96%D0%B7%D0%B8).

## Коротка історія версій

| Гілка | Drupal | Примітки |
|---|---|---|
| 7.x-1.x | Drupal 7 | Продавався як Glazed Builder, пізніше перейменований. |
| 1.x (8.x-1.x) | Drupal 8 і 9 | Машинна назва модуля `dxpr_builder` від першого релізу 1.x у травні 2020 року. Останній реліз 1.8.8. |
| 2.x | від Drupal 9.3 до 11 | CKEditor 5, підтримка модуля Key, перші функції ШІ. Останній реліз 2.8.1. |
| 3.x | Drupal 10.2 і 11 | Лише Bootstrap 5, обов’язковий модуль Key, міграції вмісту, генерування сторінок і зображень ШІ. |

Машинна назва не змінилася між 1.x і 3.x. Вміст, що досі має розмітку епохи Glazed, треба мігрувати на 1.x або 2.x перед оновленням; 3.x більше не переписує назву Glazed (див. нижче).

## Вимоги перед початком

- Drupal 10.2 або новіший, або Drupal 11 (`core_version_requirement` у файлі `dxpr_builder.info.yml`).
- Модуль Key. У 3.x це жорстка залежність; `dxpr_builder_update_9020()` встановлює його, якщо `drush updatedb` виявляє його відсутність.
- Ключ продукту, виданий для DXPR Builder 2.0.0 або новішого. Ключі без клейма `dxpr_tier`відхиляються формою налаштувань.
- Тема, що надає Bootstrap 5, або параметр підвантаження **Bootstrap 5**. Підвантаження Bootstrap 3 і 4 більше не існує.

## Кроки міграції

1. Зробіть резервну копію бази даних і файлів:

    ```bash
    drush sql:dump --result-file=backup.sql

    ```
2. Оновіть код через Composer. 3.x наразі виходить як пререлізи, тож дозвольте їх:

    ```bash
    composer require 'drupal/dxpr_builder:^3.0@beta' --with-all-dependencies

    ```
3. Виконайте хуки оновлення й перебудуйте кеші:

    ```bash
    drush updatedb
    drush cache:rebuild

    ```

    Кілька хуків 3.x обробляють кожне значення поля DXPR Builder пакетами (див. нижче). На великих сайтах це займає хвилини, а не секунди.
4. Відкрийте `/admin/dxpr_studio/dxpr_builder/settings`і перевірте розділ **Ліцензія**. Після оновлення 9020 **Спосіб зберігання** це **Модуль Key**, а **Ключ** це `DXPR Builder JWT`(`dxpr_builder_jwt`).
5. Перевірте **Підвантажувати файли Bootstrap** на тій самій сторінці. Сайти, що мали вибраний Bootstrap 3 або 4, тепер на **Bootstrap 5**.
6. Відкрийте `/admin/dxpr_studio/dxpr_builder/ai_settings`і вирішіть, чи мають три перемикачі ШІ, стандартно увімкнуті, залишатися увімкнутими.
7. Відвідайте сторінки, що використовують DXPR Builder, і переконайтеся, що вони правильно відображаються й редагуються.

## Що роблять хуки оновлення

Хуки з номерами від 8005 до 8025 вийшли в 1.x. Сайт 1.x виконує все від 8026 далі; сайт 2.8.0 або 2.8.1 виконує 8040 і від 9014 далі. Назви функцій мають вигляд `dxpr_builder_update_NNNN()`.

### Додані в 2.x (виконуються під час переходу з 1.x)

| Хук | Що робить |
|---|---|
| 8026 | Оновлює центральне сховище користувачів DXPR Builder. |
| 8027 | Додає ліцензійний інформаційний блок і стовпець «DXPR Builder User» до подання People. |
| 8028 | Створює таблицю `dxpr_lock` для блокування вмісту. |
| 8029 | Додає блок ліцензій до приладної дошки ліцензій користувачів. |
| 8030 | Перемикає налаштування Bootstrap після вилучення параметра «Bootstrap 3 Light». |
| 8031 | Вмикає ліцензійний інформаційний блок там, де його було встановлено вимкненим. |
| 8032 | Вилучає заблокованих користувачів із ліцензійного сховища. |
| 8033 | Ініціалізує `drm_last_contact`. |
| 8034 | Встановлює поле користувача `dxpr_user_is_disavowed` і дії підтвердження та скасування підтвердження користувачів. |
| 8035 | Ініціалізує налаштування `hide_reminders`. |
| 8036 | Мігрує назви кнопок панелі інструментів CKEditor 4 у профілях до CKEditor 5. |
| 8037 | Додає стандартний стиль зображення для швидкого завантаження зображень. |
| 8038 | Очищає кеші, щоб зареєструвати сервіси інтеграції модуля Key. |
| 8039 | Виправляє стилі зображень із неповними налаштуваннями `image_scale_and_crop`. |
| 9007 | Створює словники `ai_tone_of_voice` і `ai_agent_commands` зі стандартними термінами. |
| 9008 | Задає `ai_enabled` як true й вилучає старий ключ `ai_page_enabled`. |
| 9009 | Переміщує `drm_last_contact` із конфігурації до стану. |
| 9010 | Очищає кеші. |
| 9011 | Вмикає кнопки AI Assistant і AI Tone of Voice у кожному профілі. |
| 9012 | Відновлює `ai_page_enabled` зі стандартним true. |
| 9013 | Задає стандарти фільтрування виводу ШІ (`ai_output_allowed_domains`). |
| 9015 | Додає `ai_image_enabled` зі стандартним true. |

### Додані в 3.x (виконуються під час переходу з 1.x або 2.x)

| Хук | Що робить |
|---|---|
| 8040 | Нормалізує `bootstrap` до `bs5`; значення `1` (Bootstrap 3) і `bs4` переписуються. |
| 9014 | Пакетно: перетворює розмітку Owl Carousel у вмісті на карусель Bootstrap (`src/Migration/OwlCarouselMigration.php`). |
| 9016 | Додає `ai_user_model_selection` зі стандартним true. |
| 9017 | Пакетно: перетворює кругові лічильники circliful на розмітку прогресу Bootstrap (`CircleCounterMigration.php`). |
| 9018 | Пакетно: перетворює застарілу розмітку індикатора прогресу на структуру прогресу Bootstrap (`ProgressBarMigration.php`). |
| 9020 | Встановлює модуль Key, переміщує `json_web_token` до сутності Key `dxpr_builder_jwt`, задає `api_key_storage` як `key` і очищає значення у відкритому вигляді. |
| 9021 | Доповнює властивість `type` шаблонів користувачів з їхньої розмітки. |
| 9022 | Пакетно: додає `data-entity-type` і `data-entity-uuid` до внутрішніх посилань `/node/N` (`EntityLinkMigration.php`). |
| 9023 | Пакетно: виправляє текстовий формат, анотацію та втрачені дельти, які оновлення 9022 загубило на полях `text_with_summary`. |
| 9024 | Пакетно: збагачує внутрішні посилання з аліасами так само, як 9022 (`AliasLinkMigration.php`). |
| 9025 | Очищає `tone_of_voice_vocabulary`, коли він указує на словник, якого більше немає. |
| 9026 | Очищає `json_web_token` у відкритому вигляді, залишений у налаштуваннях, коли ключ міститься в сутності Key. |

Оновлення 9019 немає.

### Міграції вмісту

3.x виконує міграції вмісту лише пакетно; перетворення під час відображення більше немає. Сторінка статусу міграції (`/admin/dxpr_studio/dxpr_builder/migration-status`) і звіт про статус перелічують очікуваний вміст. Хуки оновлення вище мігрують його, як і дії **Запустити зараз** і **Запустити всі очікувані міграції** на цій сторінці. Міграції це сервіси з тегом `dxpr_builder.content_migration`(`dxpr_builder.services.yml`). Пакет, що записує збої, не позначається завершеним; невдалі елементи журналюються й залишаються очікуваними.

Переписування рядків `glazed_to_dxpr`, яке 1.x і 2.x застосовували під час відображення, вилучено. Назву Glazed відкинуто з 1.0.0 у травні 2020 року, і весь вміст епох Glazed і Carbide вважається мігрованим тими релізами. Переписування було звичайною заміною рядків. На сайтах, чий вміст лише згадує Glazed (статті підтримки, посилання на документацію), воно переписувало б прозу й ламало посилання замість міграції розмітки. Сайти, що досі тримають назви класів Glazed у збереженому вмісті, мають спочатку оновитися до релізу 2.x.

## Зміни для власного коду

### Форматувальник поля

Ідентифікатор форматувальника поля це `dxpr_builder_text`(мітка «DXPR Builder», `src/Plugin/Field/FieldFormatter/DxprBuilderFormatter.php`), незмінний з 1.x. Він має одне налаштування, `profile`, порожнє для стандарту на основі ролей, або містить ідентифікатор профілю. Перевірте, що кожне поле конструктора досі використовує цей форматувальник на своєму показі; виправлення з оновлення 9023 обмежене полями, що його використовують.

### Хуки

`dxpr_builder.api.php` документує хуки 3.x. Перейменуйте хуки Glazed Builder так:

| Хук Glazed Builder | Хук DXPR Builder 3.x |
|---|---|
| `hook_glazed_builder_classes()` | `hook_dxpr_builder_classes_alter(array &$dxpr_builder_classes)` |
| `hook_glazed_builder_buttons_folders()` | `hook_dxpr_builder_element_buttons_folders_alter(array &$dxpr_element_buttons_folders)` |
| `hook_glazed_builder_elements_folders()` | Вилучено; заміни немає. |
| немає | `hook_dxpr_builder_icon_sets_alter(array &$icon_sets)`, новий. Набори значків оголошуються у файлах `MODULE.dxpr_icon_sets.yml`. |

### CSS і службові класи

Власний CSS, що використовує назви класів Glazed, має використовувати назви DXPR, наприклад `dxpr-theme-util`, `panel-dxpr` і `dxpr-builder`. Службові класи, показані в редакторі, надаються через `hook_dxpr_builder_classes_alter()`.

### Конфігурація та розгортання

- Вилучіть `json_web_token` з будь-якої зафіксованої конфігурації; після оновлення 9020 ключ міститься в сутності Key `dxpr_builder_jwt`. Цей Key використовує постачальника **Configuration**, тож ключ досі експортується як `key.key.dxpr_builder_jwt`. Перемкніть його на постачальника **File** або **Environment**за адресою `/admin/config/system/keys`, щоб тримати його поза експортом.
- Експорт конфігурації тепер містить два словники ШІ та їхні терміни.
- Профілі експортують назви кнопок CKEditor 5 у `inline_buttons` і `modal_buttons`.

## Усунення несправностей

Якщо вміст після оновлення показується неправильно:

1. Виконайте `drush cache:rebuild`.
2. Перевірте `/admin/reports/dblog` щодо повідомлень із каналу `dxpr_builder`; пакетні міграції журналюють пропущені ними елементи.
3. Підтвердіть, що показ кожного поля конструктора досі використовує форматувальник **DXPR Builder**.
4. Підтвердіть, що тема завантажує Bootstrap 5, або увімкніть підвантаження за адресою `/admin/dxpr_studio/dxpr_builder/settings`.

## Що далі?

- [Оновлення](/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%BE%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%BD%D1%8F): рутинні оновлення в межах гілки
- [Журнал змін](/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%B6%D1%83%D1%80%D0%BD%D0%B0%D0%BB-%D0%B7%D0%BC%D1%96%D0%BD): що змінив кожен реліз
- [Довідник конфігурації](/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%B2%D1%96%D0%B4%D0%BD%D0%B8%D0%BA/%D0%B4%D0%BE%D0%B2%D1%96%D0%B4%D0%BD%D0%B8%D0%BA-%D0%BD%D0%B0%D0%BB%D0%B0%D1%88%D1%82%D1%83%D0%B2%D0%B0%D0%BD%D1%8C): кожен ключ, якого торкаються хуки оновлення