Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Workflows und Auslöser

Für CMS-Entwickler, wie Sie Logik ausführen, wenn Inhalte veröffentlicht werden, ein Benutzer sich registriert oder eine Bestellung aufgegeben wird. Die Seite behandelt Workflows, Events und Auslöser, die mitgelieferten…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/cms-developers/workflows-and-triggers.md

On this page

This page is a translation. Read the English original

Workflows und Auslöser

Diese Seite richtet sich an Entwickler, die "wenn X geschieht, tue Y" brauchen: eine Freigabe vor dem Veröffentlichen, eine E-Mail nach einer Registrierung, einen Abgleich mit einem anderen System nach einer Aktualisierung. Exponential hat dafür zwei Mechanismen: Workflows, die Redakteure und Administratoren in der Administration konfigurieren und die eine Operation zurückhalten können, und Event-Listener, die Ihr Code in Einstellungen registriert.

Inhalt

  1. Workflows, Events und Auslöser
  2. Die mitgelieferten Event-Typen
  3. Freigabe vor dem Veröffentlichen
  4. Prozesse und der Workflow-Cronjob
  5. Event-Listener: der leichtere Weg
  6. Ein eigener Workflow-Event-Typ
  7. Die Wahl
  8. Stolperfallen

Workflows, Events und Auslöser

BegriffWas es istWo
Workfloweine benannte, geordnete Liste von Events in einer Workflow-GruppeSetup > Workflows (/workflow/grouplist)
Eventein Schritt eines Workflows, von einem Event-Typdie Bearbeitungsseite des Workflows
Auslöserdie Verbindung zwischen einem Workflow und einer Operation, davor oder danach (pre_publish, post_publish ...)Setup > Auslöser (/trigger/list)
Prozessein nicht abgeschlossener Lauf eines Workflows für ein Objekt und eine VersionSetup > Workflow-Prozesse (/workflow/processlist)

Die für Auslöser angebotenen Operationen stehen in workflow.ini [OperationSettings] AvailableOperationList[]: mitgeliefert sind content_publish und die Shop-Operationen (before_shop_confirmorder, shop_checkout, shop_addtobasket, shop_updatebasket). Weitere (Verschieben, Verbergen, Entfernen, Lesen von Inhalten, Benutzeraktivierung und andere) sind dort als Kommentare aufgeführt und lassen sich in Ihren Einstellungen einschalten, mit dem Hinweis, dass sich ihr Code ändern kann (Workflows, Abschnitt 1).

Die mitgelieferten Event-Typen

settings/workflow.ini [EventSettings] AvailableEventTypes[] (kernel/classes/workflowtypes/event/):

Event-TypTut
Freigeben (ezapprove)hält das Veröffentlichen zurück, bis ein Freigebender im Posteingang der Zusammenarbeit entscheidet
Bis Datum warten (ezwaituntildate)hält das Veröffentlichen zurück, bis der Wert eines Datumsattributs erreicht ist
Multiplexer (ezmultiplexer)führt einen anderen Workflow nur für bestimmte Klassen, Sektionen oder Benutzer aus
Zahlungsgateway (ezpaymentgateway)übergibt eine Bestellung an ein Zahlungsgateway
Einfacher Versand (ezsimpleshipping)fügt einer Bestellung Versandkosten hinzu
Registrierung abschließen (ezfinishuserregister)schließt eine Registrierung ab, die ein Workflow zurückgehalten hat

Erweiterungen fügen weitere hinzu.

Freigabe vor dem Veröffentlichen

  1. Legen Sie einen Workflow mit einem Event Freigeben an: die Freigebenden (Benutzer oder eine Gruppe), die Sektionen und Sprachen, für die er gilt, und für wen er nicht gilt (zum Beispiel die Freigebenden selbst).
  2. Packen Sie ihn in einen Multiplexer, wenn nur einige Klassen eine Freigabe brauchen.
  3. Verbinden Sie ihn mit dem Auslöser content / publish / before.
  4. Stellen Sie sicher, dass der Workflow-Cronjob läuft.

Die Version des Redakteurs wird ausstehend; ein Freigebender gibt im Posteingang der Zusammenarbeit frei oder lehnt ab; der nächste Lauf des Workflow-Cronjobs veröffentlicht oder gibt den Entwurf zurück. Das durchgerechnete Beispiel mit jedem Bildschirm: Freigabe vor dem Veröffentlichen.

Prozesse und der Workflow-Cronjob

Eine zurückgehaltene Operation wird als Prozess mit einem Memento der Operation gespeichert; workflow.php in den Cronjob-Teilen setzt wartende Prozesse fort. Ohne Cron werden freigegebene Inhalte nie veröffentlicht (Cronjobs, Der Workflow-Cronjob). Prozesse, die auf einen entfernten Freigebenden warten, müssen bereinigt werden (Prozesse abbrechen und bereinigen).

Event-Listener: der leichtere Weg

Wenn Ihr Code nur reagieren muss (protokollieren, benachrichtigen, abgleichen) und die Operation nie zurückhalten muss, ist ein Event-Listener einfacher: ein Callback, registriert in site.ini [Event] Listeners[] für ein Event, das der Kernel ankündigt, etwa content/state/assign (Zustände geändert) oder content/cache (die Caches von Knoten wurden geleert, was das Veröffentlichen tut). Es gibt kein eigenes Event "nach dem Veröffentlichen"; dafür verwenden Sie ein Workflow-Event an post_publish. Filter-Events lassen einen Listener einen Wert ändern und müssen ihn zurückgeben (Events, Listener und Filter).

Ein eigener Workflow-Event-Typ

Wenn Redakteure Ihren Schritt ihren Workflows hinzufügen können müssen oder der Schritt die Operation zurückhalten muss, schreiben Sie einen Workflow-Event-Typ: eine Klasse, die eZWorkflowEventType erweitert, mit einer Methode execute(), die angenommen, abgelehnt oder "später erneut ausführen" antwortet, registriert in workflow.ini.append.php Ihrer Erweiterung (Workflow-Event-Typen, Ein Workflow-Event von Hand, Die eZWorkflowType-API).

Die Wahl

BedarfVerwenden Sie
Eine redaktionelle Freigabedas Event Freigeben, von einem Administrator konfiguriert
Veröffentlichen zu einem DatumBis Datum warten oder die Cronjobs hide.php und unpublish.php zum Verbergen und Entfernen (Versionen, Entwürfe und Veröffentlichen)
Ein anderes System nach dem Veröffentlichen benachrichtigenein Workflow-Event an post_publish
Ein Veröffentlichen stoppen, das eine Ihrer Regeln verletzteinen Workflow-Event-Typ an pre_publish, der ablehnt
Stufen mit eigenen BerechtigungenObjektzustände, von Redakteuren oder einem Workflow-Event geändert (Objektzustände)

Stolperfallen

  • Langsame Events verlangsamen das Veröffentlichen. Ein Aufruf eines anderen Systems in post_publish lässt den Redakteur warten; reihen Sie ihn ein und lassen Sie einen Cronjob oder einen Inhaltsjob die Arbeit erledigen.
  • Schleifen. Ein Event, das Inhalte veröffentlicht, löst die Veröffentlichungs-Workflows erneut aus; schützen Sie sich dagegen.
  • Testen als Administrator. Viele Freigabe-Einrichtungen nehmen Administratoren aus; testen Sie mit einem Redakteurskonto unter example.invalid.
  • Cron auf einem neuen Server vergessen. Prüfen Sie vor dem Live-Gang, dass der Workflow-Cronjob eingeplant ist.

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x