Verwendung der UI zum Exportieren von Code für benutzerdefinierte Felder
Manchmal, wenn Sie einen Inhaltstyp aus einem benutzerdefinierten Modul bereitstellen, möchten Sie auch Felder hinzufügen, die zu diesem Inhaltstyp gehören. Die Möglichkeit, Felder automatisch zu erstellen, ermöglicht es Ihnen, die Installation auf mehreren Seiten zu deinstallieren und erneut zu installieren, ohne dass unerwünschte Felder zurückbleiben, und stellt sicher, dass Sie nicht vergessen, sie hinzuzufügen. Es gibt zwei Möglichkeiten, diese Felder in Ihren Code einzubringen, die wir hier betrachten werden.
Voraussetzungen
- Drupal 8.0.x ist installiert.
- Sie haben ein benutzerdefiniertes Modul (der Modulname in diesem Beispiel ist foobar).
- Sie haben einen benutzerdefinierten Inhaltstyp im Modul (bitte folgen Sie den Anweisungen auf der übergeordneten Seite. Der Name des Inhaltstyps lautet "Car Brand").
Zusätzliche Felder zu unserem Inhaltstyp hinzufügen
Es gibt zwei Möglichkeiten, diesen Schritt zu machen. Sie können das Benutzerinterface verwenden, um Felder zu erstellen und die Konfiguration in Dateien zu exportieren, oder Sie können die Dateien einfach selbst schreiben. Ich persönlich bevorzuge die erste Methode, um sicherzugehen, dass Sie nichts Wichtiges übersehen, allerdings werden die Felder mit "field_" am Anfang exportiert und nicht mit "foobar_car_brand_", um sie mit unserem benutzerdefinierten Inhaltstyp zu verbinden. Wir werden hier den Einsatz des Benutzerinterfaces betrachten, um Felder zu erstellen und den Code zu exportieren, der in Ihrem benutzerdefinierten Modul verwendet werden soll.
Felder über die UI erstellen
Wie bereits erwähnt, ist diese Methode etwas besser für Benutzer, die mit den Anforderungen von Drupal an das Hinzufügen von Feldern zu Inhaltstypen nicht so vertraut sind.
Benutzerdefinierten Inhaltstyp aktivieren
Falls Sie das Modul foobar noch nicht am Ende der übergeordneten Seite aktiviert haben, tun Sie dies jetzt. Wenn Sie nun zur Seite "Inhalt erstellen" gehen, sehen Sie, dass Sie einen neuen Knoten des Inhaltstyps "Car Brand" erstellen können.
/admin/structure/types/manage/car_brand/fields
Jetzt, da Ihr Modul aktiviert ist, können Sie zum Bereich zur Verwaltung der Felder Ihres Inhaltstyps gehen. Fügen Sie alle gewünschten Felder hinzu. Stellen Sie nur sicher, dass eines der Felder, das Sie hinzufügen, „Brand Information“ (field_brand_information) vom Feldtyp „Text“ (formatiert, lang, mit Zusammenfassung) ist, und löschen Sie das Textfeld. Lassen Sie den Rest auf Standard.
Verwendung der UI zum Exportieren der Feldkonfiguration /admin/config/development/configuration/single/export
Sobald Sie Ihre Felder hinzugefügt haben, gehen Sie zur Konfigurationssynchronisationsseite. Oben gibt es drei Tabs. Wählen Sie unter diesen drei "Export". Dann wählen Sie "Einzelnes Element" unter diesen Tabs.
Exportkonfiguration erhalten
Unten finden Sie vier Bilder, die zeigen, welche Elemente für das Feld "field_brand_information" exportiert werden müssen.
- Feldspeicherung (Field Storage)
- Feld (Field)
- Entity View Display
- Entity Form Display
Unter dem Konfigurationscode sehen Sie den Dateinamen, den Sie in Ihrem benutzerdefinierten Modul erstellen müssen. Kopieren Sie alles im Konfigurationscode in die angegebene Datei, außer der ersten Zeile, die mit "uuid:" beginnt.
Hinweis: Wenn Sie zusätzliche Felder hinzugefügt haben, müssen Sie Feld- und Feldspeicher jeweils für diese exportieren. Dasselbe gilt, wenn Sie mehrere Darstellungen erstellt haben, wie z.B. den Teaser. In diesem Beispiel zeigen wir nur die Standardansicht.
modules/custom/foobar/config/install/field.storage.node.field_brand_information.yml
modules/custom/foobar/config/install/field.field.node.car_brand.field_brand_information.yml
modules/custom/foobar/config/install/core.entity_view_display.node.car_brand.default.yml
modules/custom/foobar/config/install/core.entity_form_display.node.car_brand.default.yml
Modul foobar deinstallieren und wieder aktivieren
Jetzt, da Sie alle Ihre Feldkonfigurationen in Ihrem Code haben, ist es Zeit, das Modul foobar zu deinstallieren. Nachdem Sie es deinstalliert haben, gehen Sie zurück und aktivieren Sie das Modul erneut, um zu sehen, ob es Ihre benutzerdefinierten Felder erstellt. Wenn Sie jetzt zur Seite "Inhalt erstellen" gehen, werden Sie sehen, dass Sie einen neuen Knoten des Inhaltstyps "Car Brand" erstellen können, der unser neues Feld "Brand Information" und alle anderen Felder enthält, die Sie erstellt haben.
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.