Référence de l’API.

Learn DXPR BuilderExtendArchitectuur en API’s

Les services PHP, points d’extension JavaScript et routes définis par DXPR Builder. Les identifiants de service viennent de dxpr_builder.services.yml, les routes de dxpr_builder.routing.yml. Pour les détails de requête et réponse de chaque route, voir Points d’accès de l’API.

Services PHP

Identifiant de service Classe (dans src/) Rôle
dxpr_builder.service Service\DxprBuilderService Prépare le contenu du builder pour la sortie, gère les jetons de chemin, construit le registre des jeux d’icônes
dxpr_builder.license_service Service\DxprBuilderLicenseService Statut de licence, utilisateurs facturables, synchro des contributeurs avec DXPR
dxpr_builder.key_service Service\DxprBuilderKeyService Lit et stocke la clé de produit
dxpr_builder.jwt_decoder Service\DxprBuilderJWTDecoder Décode le contenu de la clé de produit
dxpr_builder.user_settings Service\UserSettings Les réglages d’éditeur propres à chaque contributeur, gardés dans les données utilisateur
dxpr_builder.content_lock Service\ContentLock Enregistre quel utilisateur modifie une révision d’entité
dxpr_builder.content_migration Service\ContentMigrationService Exécute les migrations de contenu ; collecte les services taggés dxpr_builder.content_migration
dxpr_builder.profile_handler Service\Handler\ProfileHandler Transforme un profil en réglages d’éditeur
dxpr_builder.handler.block Service\Handler\BlockHandler Rend les blocs Drupal placés comme éléments
dxpr_builder.handler.view Service\Handler\ViewHandler Rend les affichages de vues placés comme éléments
dxpr_builder.template_image_validator Service\TemplateImageValidator Valide les images d’aperçu des modèles
dxpr_builder.rl_variant.extractor, dxpr_builder.rl_variant.registrar RlIntegration\Service\* Variantes de test A/B ; inactif sans le module RL
dxpr_builder.rl_sort.extractor, dxpr_builder.rl_sort.registrar RlIntegration\Service\* Expériences de tri intelligent ; inactif sans le module RL
logger.channel.dxpr_builder canal de log du cœur Canal de log dxpr_builder

DxprBuilderServiceInterface

Implémenté par dxpr_builder.service. Les méthodes que vous appellerez le plus probablement :

  • insertBaseTokens($content) : remplace l’URL de base de ce site, le répertoire des fichiers et le chemin du module par des jetons. L’éditeur stocke le contenu sous cette forme.
  • replaceBaseTokens(&$content): void : réétend les jetons en URL pour l’environnement actuel.
  • stripHtmlElementPersists(string $markup): string : retire les attributs data-az-persist. Exécutez-la sur du balisage écrit hors de l’éditeur ; l’éditeur les reconstruit au chargement.
  • getCmsElementNames() : les affichages de blocs et de vues proposés comme éléments, mis en cache.
  • getIconSets(): array : le registre des jeux d’icônes après découverte YAML et hook_dxpr_builder_icon_sets_alter().
$markup = \Drupal::service('dxpr_builder.service')->insertBaseTokens($html);

DxprBuilderLicenseServiceInterface

Implémenté par dxpr_builder.license_service.

  • isBillableUser(?AccountInterface $account = NULL): bool : TRUE pour l’utilisateur 1 et pour les comptes actifs avec edit with dxpr builder qui ne sont pas exclus de la modification DXPR Builder.
  • getLicenseInfo() : statut de licence depuis le serveur de licences DXPR, mis en cache. Sans clé de produit, il renvoie le palier gratuit : un utilisateur et 100 contenus.
  • syncAllUsersWithCentralStorage(string $operation, string $json_web_token = ''): void : envoie les contributeurs de ce site à DXPR. $operation est l’une des constantes d’interface DXPR_USER_SYNC_OPERATION (sync), DXPR_USER_ADD_OPERATION (add) ou DXPR_USER_REMOVE_OPERATION (remove).

DxprBuilderKeyService

  • getApiKey(): ?string : la clé de produit. Quand le réglage api_key_storage vaut key, il lit l’entité Key nommée dans key_provider ; sinon il lit json_web_token.
  • setApiKey(string $key_value, string $storage_type = 'config', ?string $selected_key_id = NULL): void : stocke la clé en config ou dans une entité Key.

DxprBuilderJWTDecoder

  • decodeJwt(string $access_token) : renvoie les claims sub, scope et dxpr_tier de la clé de produit, chacun NULL quand le jeton ne peut pas être lu. Le résultat est mis en cache par jeton.

Points d’extension JavaScript

Les scripts de l’éditeur partagent deux tableaux sur window.dxprBuilder. Empilez vos propres objets dessus entre le script qui crée le tableau et dxpr_builder.js, qui les lit une fois à son exécution.

Tableau Créé par Ce que dxpr_builder.js en fait
dxpr_param_types dxpr_param_types.js Enregistre chaque objet comme type de paramètre avec register_param_type()
dxpr_elements dxpr_elements.js create_dxpr_elements() enregistre chaque définition avec register_animated_element() et convertit ses params avec make_param_type()

Les types de paramètres enregistrés par le module sont boxmodel, checkbox, checkboxes, colorpicker, datetime, dropdown, dxb_slider, html, icon, image, images, link, links, numericfield, row_layout, saved_datetime, social_links, textarea, textfield et video. Un paramètre avec un type inconnu est rendu comme un champ de texte brut.

Éléments personnalisés montre une définition complète d’élément et comment la charger au bon moment.

Routes de l’éditeur

Légende d’accès : billable est la vérification _dxpr_builder_billable_user (utilisateur 1, ou un compte actif avec edit with dxpr builder qui n’est pas exclu) ; CSRF est _csrf_token.

Chemin Nom de route Méthodes Accès
/dxpr_builder/ajax dxpr_builder.ajax_callback toutes 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 toutes billable
/dxpr_builder/ajax/help_link_validator dxpr_builder.ajax_help_link_validator toutes billable
/dxpr_builder/media-library dxpr_builder.media_library toutes 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

Routes d’admin

Toutes les pages d’admin se trouvent sous DXPR Studio > DXPR Builder. La colonne des onglets montre le libellé dans le menu d’admin.

Chemin Onglet Permission
/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 (sous 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