Cog wheels

Regelmodul – automatische Aktionen in Drupal 8

Heute zeigen wir Ihnen, wie Sie Aktionen auf Ihrer Drupal-basierten Website automatisieren können. Dadurch wird sie noch unabhängiger von Ihrem Eingaben laufen. Wir erstellen im Rahmen unseres Drupal-Entwicklungsdienstes automatisierte Aktionen auf verschiedenen Arten von Websites.

Automatisierter Versand von E-Mails, Veröffentlichung neuer Inhalte zu einer festgelegten Zeit und Weiterleitungen nach Erfüllung bestimmter Bedingungen sind nur einige der Funktionen, die im Rules-Modul enthalten sind.

Rules ist ein Tool, mit dem Sie automatisch, bedingt ausgeführte Aktionen definieren können, die durch verschiedene Arten von Ereignissen ausgelöst werden.

Was sind einige Beispiele für solche automatisierten Aktionen? Zum Beispiel:

  • Weiterleitung des Benutzers nach dem Login;
  • Versenden einer E-Mail nach dem Hinzufügen von Inhalten;
  • Veröffentlichung von Inhalten zu einem bestimmten Zeitpunkt.

Die Grundlage des Moduls bildet die Ereignis – Bedingung – Aktion-Regel, mit einer Einschränkung – die BEDINGUNG muss kein Teil dieses Schemas sein.
Ein Beispiel für ein Schema könnte wie folgt aussehen:

  1. Ein Benutzer fügt einen Eintrag hinzu – das ist das Ereignis.
  2. Der Typ des hinzugefügten Eintrags ist „Artikel“ – das ist die Bedingung.
  3. Benachrichtigen Sie den Administrator per E-Mail über das Hinzufügen eines Eintrags – das ist die Aktion.

Installation und Einrichtung des Rules-Moduls

Derzeit (Januar 2019) ist das Modul nur in der alpha4-Version verfügbar, was bedeutet, dass einige seiner Funktionalitäten und Features möglicherweise nicht ordnungsgemäß funktionieren, es können auch noch einige Fehler und Bugs vorhanden sein.
Für die Zwecke dieses Artikels haben wir die DEV-Version des Moduls verwendet.

Das unten stehende Beispiel funktioniert und wurde in der folgenden Konfiguration getestet:
Drupal : 8.6.5
Rules : 8.x-3.x-dev
Typed Data : 8.x-1.0-alpha2

Laden Sie die Module herunter und entpacken Sie sie im Verzeichnis /modules/contrib.
Rules – https://www.drupal.org/project/rules
Typed Data – https://www.drupal.org/project/typed_data

Wenn Sie Regeln mit Benutzerrollen in den Bedingungen erstellen möchten, beispielsweise wenn Sie Benutzer mit der Rolle „Administrator“ bei der Anmeldung auf eine bestimmte Seite weiterleiten möchten, müssen Sie einen Patch hinzufügen: https://www.drupal.org/files/issues/2816157-10.patch. Wahrscheinlich wird dies in Zukunft nicht mehr notwendig sein, aber derzeit ist es noch erforderlich, damit die Benutzerrollen-Bedingung korrekt funktioniert.

Wie wendet man Patches an? – https://www.drupal.org/patch/apply.

Erstellung und Testen Ihrer Regeln

Wir zeigen Ihnen jetzt Schritt für Schritt, wie Sie eine neue Regel hinzufügen: Weiterleitung zur /admin/people-Seite, nachdem ein Benutzer mit der Administratorrolle sich auf der Website eingeloggt hat.

Fügen Sie eine neue Regel hinzu - /admin/confg/workflow/rules.
Neue Regel hinzufügen

Füllen Sie die Felder aus:

  • Benennen Sie Ihre Regel mit dem Beschriftungsfeld.
  • Wählen Sie aus dem Dropdown-Menü das Ereignis aus, das Ihre Regel auslösen wird. In unserem Fall ist es „Benutzer hat sich eingeloggt“.

Eine Bedingung hinzufügen.
Wählen Sie den entsprechenden Wert aus, in unserem Fall wird es "Benutzer hat Rolle(n)”.

Wählen Sie die richtige Bedingung

Jetzt kommen Sie zum schwierigsten Teil der Erstellung einer Regel, nämlich der Auswahl der geeigneten Objekte, auf die die Bedingung wirken soll. Sie müssen hier wirklich vorsichtig sein, da dieses Feld zwar validiert wird, es manchmal jedoch vorkommen kann, dass falsche Werte gesetzt werden, die später Probleme verursachen.
Im Abschnitt USER wechseln Sie das Feld vom automatischen Ausfüllmodus in den Auswahlmodus. Wechseln Sie zur Datenauswahl.

Diese Bedingung betrifft Benutzer, da Sie deren Rolle überprüfen müssen, daher müssen Sie im Feld „Konto“ eingeben.

Im Abschnitt ROLLEN geben Sie die Rollen ein, die die Bedingung erfüllen werden. Sie müssen den maschinennamen verwenden. Sie können ihn auf der Seite /admin/people/roles einsehen, indem Sie eine ausgewählte Rolle bearbeiten. In unserem Fall wird es „Administrator“ sein. Sie können weitere Rollen hinzufügen, denken Sie jedoch daran, nur eine Rolle pro Zeile hinzuzufügen.

Im Abschnitt PASSENDE ROLLEN, wenn Sie mehr als eine Rolle ausgewählt haben, können Sie festlegen, ob der Benutzer jede dieser Rollen haben muss (UND) oder eine von ihnen (ODER).

Im Abschnitt NEGIEREN können Sie auswählen, ob diese Bedingung erfüllt sein soll, wenn die obigen Einstellungen nicht erfüllt sind – in diesem Fall wird die Aktion ausgeführt, wenn sich jeder Benutzer einloggt, außer denen, die eine Administratorrolle haben.

Bedingungen des Rules-Moduls

Aktion hinzufügen.

+Aktion hinzufügen Schaltfläche des Moduls wird angezeigt

Wählen Sie Seitenumleitung aus dem Systemabschnitt.

"Seitenumleitung" Aktion ausgewählt

Geben Sie die Adresse (intern oder extern) ein, zu der der Benutzer nach dem Login weitergeleitet werden soll.

Umleitungsadresse (intern)

Speichern und testen Sie die Regel.

Um sicherzustellen, dass die Regel funktioniert, leeren Sie den Drupal-Cache.

Melden Sie sich jetzt an und überprüfen Sie, ob die Weiterleitung funktioniert.

Meine Weiterleitung für die Administratorrolle funktioniert nicht. Was mache ich?!

PHP gibt einen Fehler aus:

  • stellen Sie sicher, dass Sie den oben genannten Patch angewendet haben;
  • stellen Sie sicher, dass Sie das „Konto“-Objekt im Benutzerabschnitt der Regelbedingung verwendet haben.

Weiterleitung funktioniert nach dem Login nicht:

  • stellen Sie sicher, dass die Regel korrekt gespeichert ist;
  • leeren Sie den Drupal-Cache;
  • stellen Sie sicher, dass der Rollenname in der Bedingung korrekt ist.

Entdecken Sie die vielen Möglichkeiten des Rules-Moduls.

Das Rules-Modul ist ein wirklich mächtiges Tool, mit dem Sie komplexe Regeln erstellen können, die Ihre Website automatisieren.

Wenn Sie eine Idee für die Verwendung dieses Tools in Ihrem Projekt haben, aber nur noch etwas Drupal-Beratung benötigen, zögern Sie nicht, uns zu kontaktieren.

3. Best practices for software development teams