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