Ansichtsmodi sind Konfigurationselemente.
Wie alles andere, was eine Konfigurationsentität ist, ist es sehr einfach, in "Code" zu setzen: Machen Sie es zur Standardkonfiguration. Erstellen Sie es in der Benutzeroberfläche, führen Sie einen Konfigurationsexport ( admin/config/development/configuration/single/export
) durch und platzieren Sie die core.entity_view_mode.$entity_type.$view_mode.yml
Datei in config/install
Ihrem Modul.
Der Ansichtsmodus wird dann automatisch importiert und erstellt, wenn das Modul installiert wird.
Beachten Sie, dass es dann nicht fest codiert ist, sodass ein Benutzer es entfernen kann. Wenn Sie dies verhindern möchten, können Sie implementieren hook_entity_view_mode_access()
, um den Löschzugriff auf Ihre Entität für alle zu verweigern.
Standardmäßig tritt ein Problem bei der Neuinstallation des Moduls auf, da dieser Ansichtsmodus bei der Deinstallation des Moduls nicht entfernt wird und bei der erneuten Installation ein Fehler angezeigt wird. Es gibt zwei Möglichkeiten, dies zu beheben:
- Verschieben Sie die Konfiguration nach config / optional anstelle von config / install. Dann wird es nur erstellt, wenn es noch nicht existiert.
- Fügen Sie eine erzwungene Abhängigkeit von Ihrem Modul hinzu, die sicherstellt, dass sie bei der Deinstallation des Moduls entfernt wird. Beachten Sie, dass dies nur funktioniert, wenn Sie dies bei der ersten Installation des Moduls installiert haben.
So was:
dependencies:
enforced:
module:
- yourmodule
Um einen Ansichtsmodus in Drupal 8 (dh einen benutzerdefinierten Modus) zu erstellen
manage display
, kann dies jetzt über die Benutzeroberfläche erfolgen:admin/structure/display-modes/view
Oder wenn Sie programmatisch mögen einen bieten View - Modus mit Ihrem Modul folgendermaßen vor:
config/install
Verzeichnis in Ihrem Modulconfig/install
Erstellen Sie innerhalb von eine Datei mit dem Namencore.entity_view_mode.node.my_module.yml
Dann innerhalb von
core.entity_view_mode.node.my_module.yml
hinzufügen:Installieren Sie dann Ihr Modul (Sie müssen Ihr Modul deinstallieren und erneut installieren, wenn es bereits installiert ist). Sie haben jetzt einen benutzerdefinierten Ansichtsmodus, der für alle Ihre Inhaltstypen aktiviert werden kann.
Um andere Entitätstypen (z. B. Kommentar, Benutzer) zu unterstützen, erstellen Sie einfach eine neue
.yml
Datei und ersetzen Sie Vorkommen vonnode
durch Ihren gewünschten Entitätstyp.quelle
quelle