---
url: 'https://dxpr.com/fr/hc/documentation/apprendre-dxpr-builder/developpement/sous-modules'
title: 'Sous-modules livrés | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T11:01:06+00:00'
updated: '2026-10-24T17:19:22+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: '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.'
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-24T17:19:22+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      mainEntity: {  }
    -
      '@type': TechArticle
      headline: 'Sous-modules livrés'
      description: '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.'
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-24T11:01:06+0000'
      dateModified: '2026-10-24T17:19:22+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/fr/hc/documentation/apprendre-dxpr-builder/developpement/sous-modules'
      articleSection: 'Architecture et API'
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/fr/hc/documentation/apprendre-dxpr-builder/developpement/sous-modules'
      description: '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.'
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: Accueil
            item: 'https://dxpr.com/fr'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: fr
---
[Centre d’aide](/fr/hc)/[Documentation](/fr/hc/documentation) /[Apprendre DXPR Builder](/fr/hc/documentation/learn-dxpr-builder) /[Étendre](/fr/hc/documentation/learn-dxpr-builder/extend) /[Architecture et API](/fr/hc/documentation/learn-dxpr-builder/extend/architecture) # Sous-modules livrés.

 Apprendre DXPR BuilderÉtendreArchitecture et API

   ## Dans ce guide

 Guides associés

- [Types de contenu](/fr/hc/documentation/apprendre-dxpr-builder/integrations/types-de-contenu)
- [Placer une image depuis votre médiathèque](/fr/hc/documentation/apprendre-dxpr-builder/integrations/mediatheque)

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](/fr/hc/documentation/apprendre-dxpr-builder/demarrage/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 :

    ```bash
    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](/fr/hc/documentation/apprendre-dxpr-builder/depannage/apres-une-mise-a-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](/fr/hc/documentation/learn-dxpr-builder/advanced/content-staging)).

Dépendances : `text`, `node` et `dxpr_builder`.

1. Activez le module :

    ```bash
    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é :

    ```bash
    drush pm:uninstall dxpr_builder_media -y

    ```
2. Allez sous **DXPR Studio &gt; DXPR Builder &gt; 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](/fr/hc/documentation/apprendre-dxpr-builder/depannage/images-et-medias) 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](/fr/hc/documentation/apprendre-dxpr-builder/developpement/tests).

## Activer plusieurs à la fois

```bash
drush en dxpr_builder_page dxpr_builder_block -y

```

Chaque sous-module est indépendant des autres.

## Et ensuite ?

- [Types de contenu](/fr/hc/documentation/apprendre-dxpr-builder/integrations/types-de-contenu) pour utiliser le builder sur vos propres types de contenu.
- [Intégration de la médiathèque](/fr/hc/documentation/apprendre-dxpr-builder/integrations/mediatheque) pour le sélecteur d’images recommandé.