Direkt zum Inhalt
Drupal: Gemeinsame Nutzung der Konfiguration durch mehrere Websites.

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:

Profile picture for user admin Stephane K

Écrit le

Il y'a 2 Jahre
Modifié
Il y'a 2 Wochen
Lädt...
WhatsApp
Support Habeuk : +237 694 900 622
WhatsApp Send