---
url: 'https://dxpr.com/it/hc/documentation/learn-dxpr-builder/development/submodules'
title: 'Sottomoduli | DXPR'
author:
  name: Jurriaan
  url: 'https://dxpr.com/users/jurriaan'
date: '2026-10-24T03:03:58+00:00'
updated: '2026-10-24T09:09:48+00:00'
copyright: 'Copyright DXPR. All rights reserved.'
type: article
summary: |-
  La directory modules/ contiene tre sottomoduli. Due sono piccoli
  pacchetti di configurazione: un tipo di contenuto e un tipo di blocco
  collegati al builder. Il terzo è il vecchio selettore media Entity Browser
  che precede il supporto alla Media Library. Questa pagina documenta
  cosa installa ciascuno, da cosa dipende e come abilitarlo o
  dismetterlo.
tags:
  - Tooling
image: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
published: true
og:
  site_name: DXPR
  updated_time: '2026-10-24T09:09:48+0000'
  'image:alt': 'DXPR, powered by Drupal: AI-powered Drupal for marketers.'
schema:
  '@context': 'https://schema.org'
  '@graph':
    -
      mainEntity: {  }
    -
      '@type': TechArticle
      headline: Sottomoduli
      description: |-
        La directory modules/ contiene tre sottomoduli. Due sono piccoli
        pacchetti di configurazione: un tipo di contenuto e un tipo di blocco
        collegati al builder. Il terzo è il vecchio selettore media Entity Browser
        che precede il supporto alla Media Library. Questa pagina documenta
        cosa installa ciascuno, da cosa dipende e come abilitarlo o
        dismetterlo.
      image:
        '@type': ImageObject
        url: 'https://dxpr.com/themes/custom/dxpr_com/images/dxpr-share-card.jpg'
        width: '1200'
        height: '630'
      datePublished: '2026-10-24T03:03:58+0000'
      dateModified: '2026-10-24T09:09:48+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/it/hc/documentation/learn-dxpr-builder/development/submodules'
      articleSection: Tooling
    -
      '@type': WebPage
      '@id': 'https://dxpr.com/it/hc/documentation/learn-dxpr-builder/development/submodules'
      description: |-
        La directory modules/ contiene tre sottomoduli. Due sono piccoli
        pacchetti di configurazione: un tipo di contenuto e un tipo di blocco
        collegati al builder. Il terzo è il vecchio selettore media Entity Browser
        che precede il supporto alla Media Library. Questa pagina documenta
        cosa installa ciascuno, da cosa dipende e come abilitarlo o
        dismetterlo.
      breadcrumb:
        '@type': BreadcrumbList
        itemListElement:
          -
            '@type': ListItem
            position: 1
            name: Home
            item: 'https://dxpr.com/it'
      publisher:
        '@type': Organization
        '@id': 'https://dxpr.com/#organization'
        name: DXPR
      inLanguage: it
---
[Help Center](/it/hc)/[Documentation](/it/hc/documentation) /[Learn DXPR Builder](/hc/documentation/learn-dxpr-builder) /[Extend](/hc/documentation/learn-dxpr-builder/extend) /[Tooling](/hc/documentation/learn-dxpr-builder/extend/tooling) # Sottomoduli.

 Learn DXPR BuilderExtendTooling

   ## In this guide

 Related guides

- [Tipi di contenuto](/it/hc/documentation/learn-dxpr-builder/integrations/content-types)
- [Inserisci un’immagine dalla libreria multimediale](/it/hc/documentation/learn-dxpr-builder/integrations/media-library)

La directory `modules/` contiene tre sottomoduli. Due sono piccoli pacchetti di configurazione: un tipo di contenuto e un tipo di blocco collegati al builder. Il terzo è il vecchio selettore media Entity Browser che precede il supporto alla Media Library. Questa pagina documenta cosa installa ciascuno, da cosa dipende e come abilitarlo o dismetterlo.

| Modulo | Nome macchina | Fornisce | Stato |
|---|---|---|---|
| DXPR Builder Drag and Drop Page | `dxpr_builder_page` | `drag_and_drop_page` come tipo di contenuto | Supportato |
| DXPR Builder Block Type | `dxpr_builder_block` | `drag_and_drop_block` come tipo di blocco | Supportato |
| DXPR Builder Media | `dxpr_builder_media` | selettore media Entity Browser | Legacy; nascosto dalla pagina Extend |

Nessuno è obbligatorio. Il builder funziona su qualsiasi campo di testo la cui visualizzazione usa il formatter **DXPR Builder**(`dxpr_builder_text`); vedi [Installazione sui tipi di contenuto esistenti](/hc/documentation/learn-dxpr-builder/getting-started/installing-on-existing-content-types).

## DXPR Builder Drag and Drop Page

`modules/dxpr_builder_page` installa il tipo di contenuto **Drag and Drop Page** (`node.type.drag_and_drop_page`) da `config/optional/`:

- Il campo `body`, con la visualizzazione predefinita che usa il formatter `dxpr_builder_text` e la visualizzazione form raggruppata con Field Group.
- Tre campi DXPR Theme: `field_dth_hide_regions`, `field_dth_main_content_width` e `field_dth_page_layout`. Si installano solo quando esistono i loro field storage, forniti dal modulo DXPR Theme Helper.

Dipendenze da `dxpr_builder_page.info.yml`: `field_group`, `text`, `node` e `dxpr_builder`. `hook_install()` crea il field storage `body` quando non esiste. Quando la config opzionale non si installa, come nel profilo Minimal, installa tipo, campo body e visualizzazioni da sé, senza le parti `menu_ui` e `path`. `dxpr_builder_page_update_8001()` marca la config installata come imposta dal modulo.

`src/DXPRBuilderPageUninstallValidator.php` (registrato in `dxpr_builder_page.services.yml`) blocca la disinstallazione finché esiste un nodo `drag_and_drop_page`. Elimina o cambia il tipo di quei nodi prima.

1. Attiva il modulo:

    ```bash
    drush en dxpr_builder_page -y

    ```
2. Crea una pagina in `/node/add/drag_and_drop_page`. Il builder si avvia sul campo body quando la pagina è vista da un editor.

Se l’attivazione fallisce con "unmet dependencies", attiva Field Group e verifica che esista un field storage `body`; vedi [Problemi dopo l’aggiornamento](/it/hc/documentation/learn-dxpr-builder/troubleshooting/after-updating).

## DXPR Builder Block Type

`modules/dxpr_builder_block` installa il tipo di blocco **Drag and Drop Block** (`block_content.type.drag_and_drop_block`) da `config/optional/`, con un campo `body`, il formatter `dxpr_builder_text` sulla visualizzazione predefinita e la visualizzazione form. Il tipo ha **Create new revision** attivo, e `dxpr_builder_block_update_8002()` lo attiva per le installazioni precedenti, quindi ogni salvataggio del builder su un blocco crea una revisione (vedi [Content staging](/it/hc/documentation/learn-dxpr-builder/advanced/content-staging)).

Dipendenze: `text`, `node` e `dxpr_builder`.

1. Attiva il modulo:

    ```bash
    drush en dxpr_builder_block -y

    ```
2. Crea un blocco in `/block/add/drag_and_drop_block`.
3. Mettilo in una regione. Gli editor lo modificano sul posto in ogni pagina dove compare.

`dxpr_builder_entity_type_alter()` inserisce la classe propria del modulo `Drupal\dxpr_builder\Entity\BlockContent`, come fa per `Node`. La classe salva una stringa vuota nei campi builder vuoti, così l’editor ha sempre qualcosa a cui collegarsi. Un tipo di blocco creato da te funziona quindi allo stesso modo una volta che la sua visualizzazione usa il formatter DXPR Builder.

## DXPR Builder Media

`modules/dxpr_builder_media` è il selettore immagini basato su Entity Browser usato dal modulo prima del supporto alla Media Library del core. È marcato `hidden: true` nel suo `.info.yml`, quindi non compare in **Extend**; puoi comunque attivarlo con Drush. Installa:

- `entity_browser.browser.dxpr_builder_media_modal`: un browser modale etichettato **DXPR Builder Image Browser** con due widget, una scheda **Media Library** sostenuta dalla vista `dxpr_builder_media` e una scheda **Upload new image** che crea un’entità media `image`tramite Inline Entity Form.
- `views.view.dxpr_builder_media`: la griglia media per il primo widget.
- `image.style.dxpr_builder_media_thumbnail`: uno stile scala-e-ritaglia 300 per 300 pixel per la griglia.
- Librerie `view`, `claro_style` e `gin_style`(`dxpr_builder_media.libraries.yml`). Il modulo collega il foglio di stile Gin alla vista quando il tema attivo è Gin o basato su di esso, e quello Claro altrimenti.

Dipendenze: `inline_entity_form`, `entity_browser`, `entity_browser_entity_form`, `media`, `media_library` e `views`. All’installazione il modulo imposta `media_browser` in `dxpr_builder.settings` a `dxpr_builder_media_modal`; alla disinstallazione lo imposta a una stringa vuota (**Basic file upload**) ed elimina lo stile di immagine.

Il browser consigliato è la Media Library del core, che non richiede sottomoduli:

1. Disinstalla il modulo legacy se è attivo:

    ```bash
    drush pm:uninstall dxpr_builder_media -y

    ```
2. Vai in **DXPR Studio &gt; DXPR Builder &gt; General Settings**(`/admin/dxpr_studio/dxpr_builder/settings`) e apri **Media**.
3. Imposta **Browser type** a **Media Library** e fai clic su **Save settings**. La disinstallazione lo ha reimpostato a **Basic file upload**.

Tieni il sottomodulo solo su un sito che dipende da un Entity Browser che restituisce ID file; vedi [Le immagini non si caricano o spariscono](/it/hc/documentation/learn-dxpr-builder/troubleshooting/images-and-media)per gli errori prodotti da un browser non corrispondente. Il modulo contiene l’unico test PHPUnit del repository, `tests/src/FunctionalJavascript/MediaEntityBrowserTest.php`; vedi [Test](/it/hc/documentation/learn-dxpr-builder/development/testing).

## Attivarne più d’uno insieme

```bash
drush en dxpr_builder_page dxpr_builder_block -y

```

Ogni sottomodulo è indipendente dagli altri.

## Prossimi passi

- [Tipi di contenuto](/hc/documentation/learn-dxpr-builder/integrations/content-types) per usare il builder sui tuoi tipi di contenuto.
- [Integrazione Media Library](/it/hc/documentation/learn-dxpr-builder/integrations/media-library) per il selettore di immagini consigliato.