logo

Extra Block Types (EBT) - Nuova esperienza con Layout Builder❗

Extra Block Types (EBT) - tipi di blocchi stilizzati e personalizzabili: Slideshows, Tabs, Cards, Accordion e molti altri. Impostazioni integrate per sfondo, DOM Box, plugin javascript. Vivi oggi il futuro della costruzione dei layout.

Demo moduli EBT Scarica moduli EBT

❗Extra Paragraph Types (EPT) - Nuova esperienza con Paragraphs

Extra Paragraph Types (EPT) - insieme di moduli basati su paragrafi in modo analogo.

Demo moduli EPT Scarica moduli EPT

Scorri

Creazione di un tipo di contenuto personalizzato in Drupal

30/09/2025, by Ivan

Questa pagina è una copia della configurazione “Enabled by default” nel modulo Drupal 8. Questo dovrebbe essere considerato deprecato.

La creazione di un tipo di contenuto personalizzato è diventata piuttosto semplice grazie alla nuova API di configurazione inclusa in Drupal 8.

Prerequisiti

  • Drupal 8.0.x installato
  • Avere un modulo personalizzato (il nome del modulo usato in questo esempio è foobar)

Creare un tipo di contenuto personalizzato

Come menzionato nell’introduzione, la creazione di un tipo di contenuto personalizzato avviene creando alcuni file YAML che contengono tutte le impostazioni necessarie. In questo esempio creeremo il tipo di contenuto Car Brand, che conterrà due campi (predefiniti): body e titolo.

foobar/config/install/node.type.car_brand.yml

Questo file dice a Drupal di creare un nuovo tipo di contenuto.

Nota: tieni presente che stiamo aggiungendo una dipendenza forzata dal modulo foobar. Se non aggiungiamo questa dipendenza, Drupal non eliminerà il tipo di contenuto quando il nostro modulo verrà rimosso. Quando lo sviluppatore del sito decide che questo modulo non è più necessario, non vogliamo che il tipo di contenuto rimanga disponibile.

# node.type.car_brand.yml
langcode: en
status: true
dependencies:
  enforced:
    module:
      - foobar # Questo è il nome del modulo che stiamo usando per questo esempio
name: 'Car Brand'
type: car_brand
description: 'Content type that can be used to provide additional information on <em>Car Brands</em>'
help: ''
new_revision: false
preview_mode: 1
display_submitted: true

 

foobar/config/install/field.field.node.car_brand.body.yml

Questo file aggiungerà il campo body al nostro tipo di contenuto.

# field.field.node.car_brand.body.yml
langcode: en
status: true
dependencies:
    config:
        - field.storage.node.body
        - node.type.car_brand
    module:
        - text
id: node.car_brand.body
field_name: body
entity_type: node
bundle: car_brand
label: Body
description: 'More specific information about the car brand.'
required: false
translatable: true
default_value: {  }
default_value_callback: ''
settings:
    display_summary: true
field_type: text_with_summary

 

foobar/config/install/core.entity_view_display.node.car_brand.teaser.yml

Questo file dice a Drupal come deve essere mostrato il teaser del nostro tipo di contenuto personalizzato.

# core.entity_view_display.node.car_brand.teaser.yml
langcode: en
status: true
dependencies:
    config:
        - core.entity_view_mode.node.teaser
        - field.field.node.car_brand.body
        - node.type.car_brand
    module:
        - text
        - user
id: node.car_brand.teaser
targetEntityType: node
bundle: car_brand
mode: teaser
content:
    body:
        label: hidden
        type: text_summary_or_trimmed
        weight: 101
        settings:
            trim_length: 600
        third_party_settings: {  }
    links:
        weight: 100
hidden: {  }

 

foobar/config/install/core.entity_view_display.node.car_brand.default.yml

Questo file dice a Drupal come deve essere mostrato di default il contenuto del nostro tipo personalizzato.

# core.entity_view_display.node.car_brand.default.yml
langcode: en
status: true
dependencies:
    config:
        - field.field.node.car_brand.body
        - node.type.car_brand
    module:
        - text
        - user
id: node.car_brand.default
targetEntityType: node
bundle: car_brand
mode: default
content:
    body:
        label: hidden
        type: text_default
        weight: 101
        settings: {  }
        third_party_settings: {  }
    links:
        weight: 100
hidden: {  }

 

foobar/config/install/core.entity_form_display.node.car_brand.default.yml

Questo file dice a Drupal come deve essere mostrato il form quando viene creato un nuovo nodo del nostro tipo di contenuto personalizzato.

# core.entity_form_display.node.car_brand.default.yml
langcode: en
status: true
dependencies:
    config:
        - field.field.node.car_brand.body
        - node.type.car_brand
    module:
        - text
        - user
id: node.car_brand.default
targetEntityType: node
bundle: car_brand
mode: default
content:
    body:
        label: hidden
        type: text_textarea_with_summary
        weight: 101
        settings: {  }
        third_party_settings: {  }
    links:
        weight: 100
hidden: {  }

Abilitare il tipo di contenuto personalizzato

Ora che abbiamo i nostri file di configurazione, dobbiamo dire a Drupal del nostro nuovo tipo di contenuto personalizzato. Questo si fa reinstallando il modulo. Se il tuo modulo non è stato ancora abilitato, basta abilitarlo. Se invece era già stato abilitato, disinstalla e reinstalla il modulo.
Se ora vai alla pagina “Aggiungi contenuto”, vedrai che puoi creare un nuovo nodo del tipo di contenuto “Car Brand”.