Hooks ermöglichen es Plugins, Code als Reaktion auf Events auszuführen. Alle Hooks erhalten ein Event-Objekt und den Plugin-Kontext.
Diese Seite behandelt sandboxed Plugins. Hooks funktionieren in nativen Plugins identisch; native Plugins können zusätzlich page:fragments registrieren.
Hook-Signatur
async (event, ctx) => ReturnType;
event— Daten über das Geschehenectx— derPluginContext
Hook-Konfiguration
Einfach
hooks: {
"content:afterSave": async (event, ctx) => {
ctx.log.info("Inhalt gespeichert");
},
}, Vollständig
hooks: {
"content:afterSave": {
priority: 100,
timeout: 5000,
dependencies: ["audit-log"],
errorPolicy: "continue",
handler: async (event, ctx) => {
ctx.log.info("Inhalt gespeichert");
},
},
}, | Option | Typ | Standard | Beschreibung |
|---|---|---|---|
priority | number | 100 | Ausführungsreihenfolge. Niedrigere Nummern zuerst. |
timeout | number | 5000 | Maximale Ausführungszeit in Millisekunden. |
dependencies | string[] | [] | Plugin-IDs, die vorher laufen müssen. |
errorPolicy | "abort" | "continue" | "abort" | Ob die Pipeline bei Fehler gestoppt wird. |
exclusive | boolean | false | Nur ein Plugin kann der aktive Provider sein. |
Lebenszyklus-Hooks
plugin:install
Wird einmal bei der ersten Installation ausgeführt.
plugin:activate
Wird ausgeführt, wenn das Plugin aktiviert wird.
plugin:deactivate
Wird ausgeführt, wenn das Plugin deaktiviert wird.
plugin:uninstall
Wird ausgeführt, wenn das Plugin entfernt wird.
Inhalts-Hooks
content:beforeSave
Wird vor dem Speichern von Inhalten ausgeführt. Geben Sie modifizierten Inhalt zurück, ein Sandbox-Hook-Fehlerergebnis oder void.
content:afterSave
Wird nach dem erfolgreichen Speichern ausgeführt.
content:beforeDelete
Geben Sie false zurück zum Abbrechen.
content:afterDelete
Wird nach dem Löschen ausgeführt.
content:afterPublish / content:afterUnpublish / content:afterRestore / content:afterSchedule / content:afterUnschedule
Medien-Hooks
media:beforeUpload / media:afterUpload
Öffentliche Seiten-Hooks
page:metadata
Liefert strukturierte Metadaten für <head> — meta-Tags, OpenGraph, <link>-Rels und JSON-LD. Für sandboxed und native Plugins.
page:fragments
Liefert rohes HTML, Skripte oder Stylesheets. Nur native Plugins.
Hook-Ausführungsreihenfolge
- Niedrigere
priority-Werte zuerst. - Bei gleicher Priorität in Plugin-Registrierungsreihenfolge.
- Hooks mit
dependencieswarten auf diese Plugins.
Fehlerbehandlung
errorPolicy: "abort"— Pipeline stoppt.errorPolicy: "continue"— Fehler wird protokolliert, restliche Hooks laufen weiter.
Hook-Referenz
| Hook | Auslöser | Rückgabe | Exklusiv |
|---|---|---|---|
plugin:install | Erste Installation | void | Nein |
content:beforeSave | Vor dem Speichern | Modifizierter Inhalt oder void | Nein |
content:afterSave | Nach dem Speichern | void | Nein |
content:beforeDelete | Vor dem Löschen | false zum Abbrechen | Nein |
content:afterDelete | Nach dem Löschen | void | Nein |
media:beforeUpload | Vor dem Upload | Modifizierte Dateiinfo oder void | Nein |
media:afterUpload | Nach dem Upload | void | Nein |
page:metadata | Seitenrendering | Beiträge oder null | Nein |
page:fragments | Seitenrendering (nur nativ) | Beiträge oder null | Nein |
Siehe die Hook-Referenz für vollständige Event-Typen.