blob: c3b60dfcc85b905f60b4464b3b14929fa1ef31c2 [file] [log] [blame]
Bugfix852b5a12022-10-05 14:37:18 +02001HookCallback()
2==============
3
4FUNKTION
5--------
6
7 mixed HookCallback(object hooksource, int hookid, mixed hookdata)
8
9DEFINIERT IN
10------------
11
12 Eigenen Objekten
13
14ARGUMENTE
15---------
16
17 - hooksource: Das Objekt, in dem das Ereignis ausgeloest wurde
18 - hookid: Hooktyp des ausgeloesten Hooks
19 - hookdata: Daten des ausgeloesten Hooks
20 (S. Doku des jeweiligen Hooks.)
21
22BESCHREIBUNG
23------------
24
25 Standard-Callback-Methode fuer Hooks. Wird beim Registrieren ein Objekt
26 uebergeben, wird versucht, eine Closure auf HookCallback() an diesem Objekt
27 zu erstellen. Man kann die Funktion auch anders benennen und direkt als
28 Closure uebergeben. Dies ist insb. bei mehreren Hooks im gleichen Objekt
29 hilfreich, weil es den Code uebersichtlicher macht. Die Argumente muessen
30 jedoch immer die gleichen wie bei HookCallback() sein.
31
32 Die Reihenfolge des Aufrufs der Konsumenten ist Surveyor, Hook-Modifikator,
33 Data-Modifikator, Listener. Innerhalb der Gruppen wird nach Prioritaet
34 abgearbeitet.
35 Ein Surveyor-Hook kann verhindern, dass Hooks bestimmte Aenderungen
36 durchfuehren.
37
38RUECKGABEWERTE
39--------------
40
41 ({<status>, <hookdata>})
42
43 - Status: Eine der folgenden Konstanten:
44 - H_NO_MOD: keine Veraenderung
45 - H_ALTERED: Daten des Hooks geaendert
46 - H_CANCELLED: Die Ausfuehrung der Hook-Kette und das ausloesende
47 Ereignis werden abgebrochen
48 Nicht alle Hooks unterstuetzen jeden Status.
49 - hookdata: Die ggf. modifizierten Hookdaten.
50 (S. Doku des jeweiligen Hooks.)
51
52BEMERKUNGEN
53-----------
54
55 Bitte nutzt in neuem code nicht mixed, sondern unions entsprechend der
56 Dokumentation der verwendeten Hooks.
57
58 Auch reine Listener-Objekte muesse nein Array zurueckgeben, dessen erstes
59 Element H_NO_MOD sein muss.
60
61SIEHE AUCH
62----------
63
64 :doc:`HRegisterToHook`, :doc:`HUnregisterFromHook`, unions
65
66Letzte Aenderung: 06.10.2022, Bugfix