logo

Extra Block Types (EBT) - Neue Erfahrung im Layout Builder❗

Extra Block Types (EBT) - gestylte, anpassbare Blocktypen: Diashows, Registerkarten, Karten, Akkordeons und viele andere. Eingebaute Einstellungen für Hintergrund, DOM Box, Javascript Plugins. Erleben Sie die Zukunft der Layouterstellung schon heute.

Demo EBT-Module EBT-Module herunterladen

❗Extra Absatztypen (EPT) - Erfahrung mit neuen Absätzen

Extra Paragraph Types (EPT) - analoger, auf Absätzen basierender Satz von Modulen.

Demo EPT-Module EPT-Module herunterladen

Scroll

Erstellung eines benutzerdefinierten Inhaltstyps in Drupal 8

18/06/2025, by Ivan

Diese Seite ist eine Kopie der Konfiguration „Standardmäßig aktivieren“ im Drupal 8 Modul. Dies sollte als veraltet betrachtet werden.

Das Erstellen eines benutzerdefinierten Inhaltstyps ist dank der neuen Konfigurations-API, die mit Drupal 8 eingeführt wurde, ziemlich einfach geworden.

Voraussetzungen

  • Drupal 8.0.x ist installiert
  • Ein eigenes Modul vorhanden (der im Beispiel verwendete Modulname ist foobar)

Erstellen eines benutzerdefinierten Inhaltstyps

Wie eingangs erwähnt, wird ein benutzerdefinierter Inhaltstyp durch Erstellen mehrerer YAML-Dateien definiert, die alle nötigen Einstellungen enthalten. In diesem Beispiel erstellen wir den Inhaltstyp Car Brand, der standardmäßig zwei Felder enthält: Body und Title.

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

Diese Datei teilt Drupal mit, dass ein neuer Inhaltstyp erstellt werden soll.

Hinweis: Beachten Sie, dass wir eine erzwungene Abhängigkeit zum Modul foobar hinzufügen. Wenn wir diese Abhängigkeit nicht hinzufügen, wird Drupal den Inhaltstyp beim Deinstallieren unseres Moduls nicht entfernen. Wenn der Site-Entwickler entscheidet, dass dieses Modul nicht mehr benötigt wird, soll dieser Inhaltstyp nicht mehr verfügbar sein.

# node.type.car_brand.yml
langcode: en
status: true
dependencies:
  enforced:
    module:
      - foobar # Dies ist der Name des Moduls, das wir in diesem Beispiel verwenden
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

Diese Datei fügt unserem Inhaltstyp das Feld Body hinzu.

# 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

Diese Datei informiert Drupal darüber, wie der Teaser unseres benutzerdefinierten Inhaltstyps angezeigt werden soll.

# 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

Diese Datei sagt Drupal, wie der Inhalt unseres benutzerdefinierten Typs standardmäßig angezeigt werden soll.

# 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

Diese Datei definiert, wie das Formular für die Erstellung eines neuen Knotens unseres benutzerdefinierten Inhaltstyps angezeigt werden soll.

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

Benutzerdefinierten Inhaltstyp aktivieren

Nachdem wir unsere Konfigurationsdateien erstellt haben, müssen wir Drupal über unseren neuen Inhaltstyp informieren. Dies erfolgt durch Neuinstallation des Moduls. Wenn Ihr Modul noch nicht aktiviert ist, aktivieren Sie es einfach. Falls es bereits aktiviert war, deinstallieren Sie es und aktivieren Sie es erneut.
Wenn Sie jetzt zur Seite Inhalt erstellen gehen, sehen Sie, dass Sie einen neuen Knoten des Inhaltstyps Car Brand erstellen können.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.