Довідник API.

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

Служби PHP, точки розширення JavaScript і маршрути, які визначає DXPR Builder. ID служб походять із dxpr_builder.services.yml, маршрути з dxpr_builder.routing.yml. Деталі запитів і відповідей кожного маршруту див. на сторінці Кінцеві точки API.

Служби PHP

ID служби Клас (у src/) Призначення
dxpr_builder.service Service\DxprBuilderService Готує вміст конструктора для виводу, обробляє токени шляхів, будує реєстр наборів піктограм
dxpr_builder.license_service Service\DxprBuilderLicenseService Статус ліцензії, оплачувані користувачі, синхронізація редакторів із DXPR
dxpr_builder.key_service Service\DxprBuilderKeyService Читає та зберігає ключ продукту
dxpr_builder.jwt_decoder Service\DxprBuilderJWTDecoder Декодує корисне навантаження ключа продукту
dxpr_builder.user_settings Service\UserSettings Власні налаштування редактора кожного редактора, збережені в даних користувача
dxpr_builder.content_lock Service\ContentLock Записує, який користувач редагує ревізію сутності
dxpr_builder.content_migration Service\ContentMigrationService Запускає міграції вмісту; збирає служби з тегом dxpr_builder.content_migration
dxpr_builder.profile_handler Service\Handler\ProfileHandler Перетворює профіль на налаштування редактора
dxpr_builder.handler.block Service\Handler\BlockHandler Рендерить блоки Drupal, розміщені як елементи
dxpr_builder.handler.view Service\Handler\ViewHandler Рендерить покази подань, розміщені як елементи
dxpr_builder.template_image_validator Service\TemplateImageValidator Перевіряє зображення попереднього перегляду шаблонів
dxpr_builder.rl_variant.extractor, dxpr_builder.rl_variant.registrar RlIntegration\Service\* Варіанти A/B-тестів; неактивні без модуля RL
dxpr_builder.rl_sort.extractor, dxpr_builder.rl_sort.registrar RlIntegration\Service\* Експерименти розумного сортування; неактивні без модуля RL
logger.channel.dxpr_builder канал журналу ядра Канал журналу dxpr_builder

DxprBuilderServiceInterface

Реалізовано dxpr_builder.service. Методи, які ви найімовірніше викличете:

  • insertBaseTokens($content): замінює базовий URL цього сайту, теку файлів і шлях модуля токенами. Редактор зберігає вміст у цій формі.
  • replaceBaseTokens(&$content): void: розгортає токени назад в URL для поточного середовища.
  • stripHtmlElementPersists(string $markup): string: вилучає атрибути data-az-persist. Запускайте його на розмітці, написаній поза редактором; редактор перебудовує їх під час завантаження.
  • getCmsElementNames(): блоки та покази подань, запропоновані як елементи, кешовано.
  • getIconSets(): array: реєстр наборів піктограм після виявлення YAML і hook_dxpr_builder_icon_sets_alter().
$markup = \Drupal::service('dxpr_builder.service')->insertBaseTokens($html);

DxprBuilderLicenseServiceInterface

Реалізовано dxpr_builder.license_service.

  • isBillableUser(?AccountInterface $account = NULL): bool: TRUE для користувача 1 та активних облікових записів із edit with dxpr builder, які не виключено з редагування DXPR Builder.
  • getLicenseInfo(): статус ліцензії із сервера ліцензій DXPR, кешовано. Без ключа продукту повертає безкоштовний рівень: один користувач і 100 елементів вмісту.
  • syncAllUsersWithCentralStorage(string $operation, string $json_web_token = ''): void: надсилає редакторів цього сайту до DXPR. $operation це одна з констант інтерфейсу DXPR_USER_SYNC_OPERATION (sync), DXPR_USER_ADD_OPERATION (add) або DXPR_USER_REMOVE_OPERATION (remove).

DxprBuilderKeyService

  • getApiKey(): ?string: ключ продукту. Коли налаштування api_key_storage це key, він читає сутність Key, названу в key_provider; інакше він читає json_web_token.
  • setApiKey(string $key_value, string $storage_type = 'config', ?string $selected_key_id = NULL): void: зберігає ключ у конфігурації або в сутності Key.

DxprBuilderJWTDecoder

  • decodeJwt(string $access_token): повертає клейми sub, scope і dxpr_tier ключа продукту, кожен NULL, коли токен не можна прочитати. Результат кешується на токен.

Точки розширення JavaScript

Скрипти редактора ділять два масиви на window.dxprBuilder. Додавайте власні об’єкти до них між скриптом, що створює масив, і dxpr_builder.js, який читає їх один раз під час запуску.

Масив Створено Що dxpr_builder.js робить із ним
dxpr_param_types dxpr_param_types.js Реєструє кожен об’єкт як тип параметра за допомогою register_param_type()
dxpr_elements dxpr_elements.js create_dxpr_elements() реєструє кожне визначення за допомогою register_animated_element() і конвертує його params за допомогою make_param_type()

Типи параметрів, які реєструє модуль: boxmodel, checkbox, checkboxes, colorpicker, datetime, dropdown, dxb_slider, html, icon, image, images, link, links, numericfield, row_layout, saved_datetime, social_links, textarea, textfield і video. Параметр із невідомим type рендериться як звичайне текстове поле.

Власні елементи показують повне визначення елемента і як завантажити його в правильний момент.

Маршрути редактора

Легенда доступу: billable це перевірка _dxpr_builder_billable_user (користувач 1, або активний обліковий запис із edit with dxpr builder, який не виключено); CSRF це _csrf_token.

Шлях Назва маршруту Методи Доступ
/dxpr_builder/ajax dxpr_builder.ajax_callback будь-який billable, CSRF
/dxpr_builder/ajax/file_upload dxpr_builder.ajax_file_upload_callback POST, DELETE billable, CSRF
/dxpr_builder/ajax/ai/chat dxpr_builder.ai_chat POST edit with dxpr builder, billable, CSRF
/dxpr_builder/ajax/ai/image dxpr_builder.ai_image POST edit with dxpr builder, billable, CSRF
/dxpr_builder/ajax/ai/image/edit dxpr_builder.ai_image_edit POST edit with dxpr builder, billable, CSRF
/dxpr_builder/csrf dxpr_builder.csrf_refresh будь-який billable
/dxpr_builder/ajax/help_link_validator dxpr_builder.ajax_help_link_validator будь-який billable
/dxpr_builder/media-library dxpr_builder.media_library будь-який view media
/dxpr_builder/entity-link-suggestions dxpr_builder.entity_link_suggestions GET edit with dxpr builder, CSRF
/dxpr_builder/user-settings dxpr_builder.user_settings POST edit with dxpr builder, CSRF

Маршрути адміністрування

Усі сторінки адміністрування стоять під DXPR Studio > DXPR Builder. Колонка вкладки показує мітку в меню адміністрування.

Шлях Вкладка Дозвіл
/admin/dxpr_studio DXPR Studio administer dxpr builder configuration
/admin/dxpr_studio/dxpr_builder DXPR Builder administer dxpr builder configuration
/admin/dxpr_studio/dxpr_builder/settings General Settings administer dxpr builder configuration
/admin/dxpr_studio/dxpr_builder/ai_settings AI administer dxpr builder configuration
/admin/dxpr_studio/dxpr_builder/content Content Items administer dxpr builder configuration
/admin/dxpr_studio/dxpr_builder/migration-status Migrations (під Content Items) administer dxpr builder configuration
/admin/dxpr_studio/dxpr_builder/page_template Page Templates administer site configuration
/admin/dxpr_studio/dxpr_builder/user_licenses User Licenses administer dxpr builder configuration
/admin/dxpr_studio/dxpr_builder/profile User Profiles administer dxpr_builder_profile
/admin/dxpr_studio/dxpr_builder/user_templates User Templates administer site configuration