Die Entwicklung einer Website ist eine schwierige und vor allem repetitive Aufgabe. Die meisten Websites enthalten gemeinsame Informationen wie Teaser, Seitenvorlagen, Abschnitte, Profile, kompakte Profile und Dashboards.
Wir sparen viel Zeit, wenn wir die meisten Konfigurationen entweder während der Entwicklung oder während der Installation von Drupal oder einem Modul importieren können.
Das Drupal-Team hat sich mit diesen Fragen befasst und bietet uns grundlegende Tools zur Lösung dieser Probleme. Das Modul heißt „config” und ist Teil des Kerns. Es ist standardmäßig im Standardprofil installiert. Mit diesem Modul können wir Konfigurationen exportieren und anschließend importieren.
Um die Funktionsweise des letzteren besser zu verstehen, definieren wir eine Arbeitssituation:
Szenario :
Wir haben das folgende Layout :
die 3 Regionen umfasst :
- Ein Region für das Menü
- Ein Region für die Call-to-Action-Schaltfläce
- Ein Bereich für Profilinformationen.
Die Profilinformationen werden beim Hover angezeigt.:
Wir möchten diese Profilkonfiguration bei der Installation des Moduls haben.
Wir erstellen das Layout: hot_models/src/Plugin/Layout/Sections/Menus/HotModelsHotlockMenu.php
Auf der Ebene der Schnittstelle erstellen wir eine spezifische Darstellung. 'hot_models_hotlock_menu__user' und laden diese Darstellung, wenn der Benutzer angemeldet ist:
/**
* Die kompakte Darstellung des Benutzers wird hinzugefügt, wenn er angemeldet ist.
*/
$uid = \Drupal::currentUser()->id();
if ($uid) {
$user = \Drupal\user\Entity\User::load($uid);
$viewEntity = \Drupal::entityTypeManager()->getViewBuilder('user');
$build['user_compact'] = $viewEntity->view($user, 'hot_models_hotlock_menu__user');
}
Auf einer Drupal-Basisinstallation ist der Modus 'hot_models_hotlock_menu__user' existiert nicht, daher müsste es bei der Installation erstellt und die erforderlichen Elemente hinzugefügt werden.
Um dies zu erreichen, müssen wir das Anzeigemodell exportieren. 'hot_models_hotlock_menu__user':
Der Name dieser Konfiguration ist ganz unten auf der Exportseite verfügbar. Wir müssen eine Datei mit diesem Namen erstellen und den Inhalt der Konfiguration hinzufügen:
In diesem Fall heißt die Datei : core.entity_view_display.user.user.hot_models_hotlock_menu__user.yml
Diese Datei muss dans hot_models/config/install
In den Konfigurationsinhalten gibt es einen wichtigen Abschnitt : "dependencies:" die in der Regel zwei, config: die die obligatorischen Konfigurationen enthält und "module:" die die obligatorischen Module enthält.
In unserem Fall haben wir:
...
dependencies:
config:
- core.entity_view_mode.user.hot_models_hotlock_menu__user
- field.field.user.user.user_picture
- image.style.thumbnail
module:
- hot_models
- image
- layout_builder
- user
...
Darüber müssen wir importieren 'core.entity_view_mode.user.hot_models_hotlock_menu__user' Da Letzteres in Drupal nicht vorhanden ist, ist der Rest in einer Standardinstallation von Drupal vorhanden.
Die nächste Konfiguration: (core.entity_view_mode.user.hot_models_hotlock_menu__user.yml )
uuid: 6fa85a79-970e-4d1c-9b29-9a3ab6eab2e4
langcode: fr
status: true
dependencies:
module:
- user
id: user.hot_models_hotlock_menu__user
label: 'User model flat (hot_models module)'
targetEntityType: user
cache: true
NB: Da diese Konfiguration mit dem Modul verknüpft ist, muss sie gelöscht werden, wenn das Modul deinstalliert wird. Dazu müssen Sie Folgendes hinzufügen enforced auf der Ebene der Schlüssel dependencies :
...
status: true
dependencies:
config:
- core.entity_view_mode.user.hot_models_hotlock_menu__user
- field.field.user.user.user_picture
- image.style.thumbnail
module:
- hot_models
- image
- layout_builder
- user
enforced:
module:
- hot_models
third_party_settings:
layout_builder:
...
Und voilà, bei der Installation Ihres Moduls erhalten Sie diesen Block, der automatisch konfiguriert wird.
Ressourcen:
- Speicherkonfiguration
- Optionale Konfigurationen, die durch Module und Themes bereitgestellt werden, werden nun gespeichert in config/optional
- Die optionale Konfiguration aus Modulen wird vor dem Installationsprofil installiert.
- Optionale Konfiguration aus Abhängigkeitsmodulen wird vor der Installation des Moduls installiert, wenn das Profil installiert wird.