Hooks

Auf dieser Seite

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;

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");
		},
	},
},
OptionTypStandardBeschreibung
prioritynumber100Ausführungsreihenfolge. Niedrigere Nummern zuerst.
timeoutnumber5000Maximale Ausführungszeit in Millisekunden.
dependenciesstring[][]Plugin-IDs, die vorher laufen müssen.
errorPolicy"abort" | "continue""abort"Ob die Pipeline bei Fehler gestoppt wird.
exclusivebooleanfalseNur 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

  1. Niedrigere priority-Werte zuerst.
  2. Bei gleicher Priorität in Plugin-Registrierungsreihenfolge.
  3. Hooks mit dependencies warten auf diese Plugins.

Fehlerbehandlung

  • errorPolicy: "abort" — Pipeline stoppt.
  • errorPolicy: "continue" — Fehler wird protokolliert, restliche Hooks laufen weiter.

Hook-Referenz

HookAuslöserRückgabeExklusiv
plugin:installErste InstallationvoidNein
content:beforeSaveVor dem SpeichernModifizierter Inhalt oder voidNein
content:afterSaveNach dem SpeichernvoidNein
content:beforeDeleteVor dem Löschenfalse zum AbbrechenNein
content:afterDeleteNach dem LöschenvoidNein
media:beforeUploadVor dem UploadModifizierte Dateiinfo oder voidNein
media:afterUploadNach dem UploadvoidNein
page:metadataSeitenrenderingBeiträge oder nullNein
page:fragmentsSeitenrendering (nur nativ)Beiträge oder nullNein

Siehe die Hook-Referenz für vollständige Event-Typen.