Sektionen
Benutzerspezifische Werkzeuge
Sie sind hier: Startseite Support Dokumentation docs Plone: Eventhandler spezifisch registrieren

Plone: Eventhandler spezifisch registrieren

Um z.B. nicht auf jedes IObjectEditedEvent event zu reagieren, sondern nur für eine bestimmte Art von Objekten, kann ein Event-Subscriber an 2 Interfaces gebunden werden.

Möchte man z.B. nach dem anlegen eines bestimmten Archetypes basierten ContentTypes, einen Eventhandler aufrufen, kann man ihn wie folgt registrieren.

<subscriber
for="my.package.interfaces.IMySpecialContent
Products.Archetypes.interfaces.IObjectInitializedEvent"
handler="my.package.events.do_some_thing" />

Die for-Anweisung enthält hier 2 Interfaces. Das erste Interface beschreibt das Object und das zweite Interface beschreibt das Event. Die Reihenfolge ist dabei wichtig!

Treffen beide Bedingungen zu, so wird der Handler do_some_thing ausgeführt.

Dieser könnte z.B. wie folgt aussehen.

def do_some_thing(object, event):
""" Do some thing with this object
any time the event i called.
"""
print(object.id)