Sous-modules livrés.

Learn DXPR BuilderExtendArchitectuur en API’s

Le répertoire modules/ contient trois sous-modules. Deux sont de petits paquets de configuration : un type de contenu et un type de bloc branchés sur le builder. Le troisième est l’ancien sélecteur de médias Entity Browser, antérieur au support de la médiathèque. Cette page documente ce que chacun installe, ses dépendances, et comment l’activer ou le retirer.

Module Nom machine Fournit Statut
DXPR Builder Drag and Drop Page dxpr_builder_page drag_and_drop_page, type de contenu Pris en charge
DXPR Builder Block Type dxpr_builder_block drag_and_drop_block, type de bloc Pris en charge
DXPR Builder Media dxpr_builder_media Sélecteur de médias Entity Browser Hérité ; masqué de la page Extend

Aucun n’est requis. Le builder marche sur tout champ de texte dont l’affichage utilise le formateur DXPR Builder (dxpr_builder_text) ; voir Installer sur des types de contenu existants.

DXPR Builder Drag and Drop Page

modules/dxpr_builder_page installe le type de contenu Drag and Drop Page (node.type.drag_and_drop_page) depuis config/optional/ :

  • Le champ body, avec l’affichage par défaut utilisant le formateur dxpr_builder_text et l’affichage de formulaire groupé avec Field Group.
  • Trois champs DXPR Theme : field_dth_hide_regions, field_dth_main_content_width et field_dth_page_layout. Ils ne s’installent que si leurs stockages de champs existent, fournis par le module DXPR Theme Helper.

Dépendances depuis dxpr_builder_page.info.yml : field_group, text, node et dxpr_builder. hook_install() crée le stockage du champ body quand il n’existe pas. Quand la config optionnelle ne peut pas s’installer, comme sur le profil Minimal, il installe lui-même le type, le champ body et les affichages, sans les parties menu_ui et path. dxpr_builder_page_update_8001() marque la config installée comme imposée par le module.

src/DXPRBuilderPageUninstallValidator.php (enregistré dans dxpr_builder_page.services.yml) bloque la désinstallation tant qu’un nœud drag_and_drop_page existe. Supprimez ou changez le type de ces nœuds d’abord.

  1. Activez le module :

    drush en dxpr_builder_page -y
    
  2. Créez une page sous /node/add/drag_and_drop_page. Le builder démarre sur le champ body quand la page est vue par un contributeur.

Si l’activation échoue avec « unmet dependencies », activez Field Group et vérifiez qu’un stockage de champ body existe ; voir Problèmes après mise à jour.

DXPR Builder Block Type

modules/dxpr_builder_block installe le type de bloc Drag and Drop Block (block_content.type.drag_and_drop_block) depuis config/optional/, avec un champ body, le formateur dxpr_builder_text sur l’affichage par défaut, et l’affichage de formulaire. Le type a Create new revision activé, et dxpr_builder_block_update_8002() l’active pour les anciennes installations, pour que chaque enregistrement du builder sur un bloc crée une révision (voir Staging de contenu).

Dépendances : text, node et dxpr_builder.

  1. Activez le module :

    drush en dxpr_builder_block -y
    
  2. Créez un bloc sous /block/add/drag_and_drop_block.

  3. Placez-le dans une région. Les contributeurs le modifient en place sur chaque page où il figure.

dxpr_builder_entity_type_alter() substitue la propre classe Drupal\dxpr_builder\Entity\BlockContent du module, comme pour Node. La classe enregistre une chaîne vide dans les champs builder vides, pour que l’éditeur ait toujours de quoi s’attacher. Un type de bloc créé par vous marche donc pareil une fois que son affichage utilise le formateur DXPR Builder.

DXPR Builder Media

modules/dxpr_builder_media est l’ancien sélecteur d’images basé sur Entity Browser utilisé par le module avant le support de la médiathèque du cœur. Il est marqué hidden: true dans son .info.yml, donc il n’apparaît pas sous Extend ; vous pouvez toujours l’activer avec Drush. Il installe :

  • entity_browser.browser.dxpr_builder_media_modal : un navigateur modal intitulé DXPR Builder Image Browser avec deux widgets, un onglet Media Library adossé à la vue dxpr_builder_media et un onglet Upload new image qui crée une entité média image via Inline Entity Form.
  • views.view.dxpr_builder_media : la grille de médias du premier widget.
  • image.style.dxpr_builder_media_thumbnail : un style de mise à l’échelle et recadrage 300 par 300 pixels pour la grille.
  • Les bibliothèques view, claro_style et gin_style (dxpr_builder_media.libraries.yml). Le module attache la feuille de style Gin à la vue quand le thème actif est Gin ou basé dessus, et la feuille de style Claro sinon.

Dépendances : inline_entity_form, entity_browser, entity_browser_entity_form, media, media_library et views. À l’installation, le module règle media_browser dans dxpr_builder.settings sur dxpr_builder_media_modal ; à la désinstallation, il le règle sur une chaîne vide (Basic file upload) et supprime le style d’image.

Le navigateur recommandé est la médiathèque du cœur, qui n’a besoin d’aucun sous-module :

  1. Désinstallez le module hérité s’il est activé :

    drush pm:uninstall dxpr_builder_media -y
    
  2. Allez sous DXPR Studio > DXPR Builder > General Settings (/admin/dxpr_studio/dxpr_builder/settings) et ouvrez Media.

  3. Réglez Browser type sur Media Library et cliquez sur Save settings. La désinstallation l’a réinitialisé sur Basic file upload.

Gardez le sous-module seulement sur un site qui dépend d’un Entity Browser qui renvoie des identifiants de fichiers ; voir Les images ne se téléversent pas ou disparaissent pour les erreurs produites par un navigateur inadapté. Le module porte l’unique test PHPUnit du dépôt, tests/src/FunctionalJavascript/MediaEntityBrowserTest.php ; voir Tests.

Activer plusieurs à la fois

drush en dxpr_builder_page dxpr_builder_block -y

Chaque sous-module est indépendant des autres.

Et ensuite ?