logo

Types de blocs supplémentaires (EBT) – Nouvelle expérience de Layout Builder❗

Types de blocs supplémentaires (EBT) – types de blocs stylisés et personnalisables : diaporamas, onglets, cartes, accordéons et bien d’autres. Paramètres intégrés pour l’arrière-plan, la boîte DOM, les plugins JavaScript. Découvrez dès aujourd’hui le futur de la création de mises en page.

Démo des modules EBT Télécharger les modules EBT

❗Types de paragraphes supplémentaires (EPT) – Nouvelle expérience Paragraphes

Types de paragraphes supplémentaires (EPT) – ensemble de modules basé sur les paragraphes analogiques.

Démo des modules EPT Télécharger les modules EPT

Défilement

Création d’un type de contenu personnalisé dans Drupal 8

04/07/2025, by Ivan

Cette page est une copie de la configuration « Enabled by Default » dans un module Drupal 8. Elle doit être considérée comme une référence amortie.

La création d’un type de contenu personnalisé est devenue assez simple grâce à la nouvelle API de configuration introduite avec Drupal 8.

Prérequis

  • Drupal 8.0.x installé
  • Avoir son propre module (le nom du module utilisé dans cet exemple est foobar)

Création du type de contenu personnalisé

Comme mentionné dans l’introduction, créer un type de contenu personnalisé consiste à créer plusieurs fichiers YAML qui contiennent toutes les configurations nécessaires. Dans cet exemple, nous créerons un type de contenu Car Brand (Marque de voiture), qui comportera deux champs par défaut : le corps et le titre.

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

Ce fichier indique à Drupal qu’il doit créer un nouveau type de contenu.

Note : gardez à l’esprit que nous ajoutons une dépendance forcée au module foobar. Sans cette dépendance, Drupal ne supprimera pas le type de contenu lorsque notre module sera désinstallé. Lorsqu’un développeur décide que ce module n’est plus nécessaire, nous ne voulons plus que ce type de contenu soit accessible.

# node.type.car_brand.yml
langcode: en
status: true
dependencies:
  enforced:
    module:
      - foobar # C’est le nom du module utilisé dans cet exemple
name: 'Car Brand'
type: car_brand
description: 'Type de contenu utilisé pour fournir des informations supplémentaires sur <em>les marques de voiture</em>'
help: ''
new_revision: false
preview_mode: 1
display_submitted: true

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

Ce fichier ajoute le champ body à notre type de contenu.

# 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: 'Informations plus spécifiques sur la marque de voiture.'
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

Ce fichier informe Drupal sur la manière d’afficher le teaser de notre type de contenu personnalisé.

# 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

Ce fichier indique à Drupal comment afficher le contenu de notre type de contenu par défaut.

# 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

Ce fichier informe Drupal sur la manière dont le formulaire de création d’un nouveau nœud pour notre type de contenu personnalisé doit s’afficher.

# 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: { }

Activer le type de contenu personnalisé

Maintenant que nous avons nos fichiers de configuration, nous devons informer Drupal de notre nouveau type de contenu. Cela se fait en réinstallant le module. Si votre module n’a jamais été activé, activez-le simplement. S’il était déjà activé, désinstallez-le puis activez-le à nouveau.
Si vous allez maintenant sur la page « Créer du contenu », vous verrez que vous pouvez créer un nouveau nœud du type de contenu « Car Brand ».