Artikel
von Patrick Froch

Leider sind im Contao-Handbuch bis heute keine Beispiele für die Verwendung der Callbacks enthalten. Vor ca. 3 Jahren habe ich hierzu einen Text eingereicht. Es gab zu dem Thema auch ein Diskussion auf GitHub, aber leider ist es nicht zu einer Veröffentlichung gekommen. Da ich beinahe täglich mit den Callbacks arbeite, finde ich eine Übersicht mit Beispielen eine große Erleichterung. Für alle denen es ähnlich geht, stelle ich hier meine Aufstellung zur Verfügung.

Aktionscallbacks

button_callback

Ermöglicht individuelle Navigationssymbole und wird z.B. in der Seitenstruktur verwenden, um Icons abhängig von den Benutzerrechten zu deaktivieren (erfordert eine zusätzliche Prüfung mittels load_callback).

Dieser Aktionscallback wird folgendermaßen in die Definition der Operationen eingefügt:

Die Klasse, die den Callback verarbeitet kann dann zum Beispiel so aussehen:

label_callback

Ermöglicht individuelle Bezeichnungen in der Listenansicht und wird z.B. im Benutzer-Modul verwendet, um die Status-Icons hinzuzufügen.

Dieser Aktionscallback wird folgendermaßen in die Definition des Labels eingefügt:

Die Klasse, die den Callback verarbeitet kann dann zum Beispiel so aussehen:

Auflistungscallbacks

child_record_callback

Legt fest, wie die Kindelemente im "Parent View" dargestellt werden.

Dieser Auflistungscallback wird folgendermaßen in die Definition der Sortierung eingefügt:

Die Klasse, die den Callback verarbeitet kann dann zum Beispiel so aussehen:

group_callback

Ermöglicht individuelle Gruppennamen in der Listenansicht.

(Wird im Contao-Core scheinbar nicht verwendet, leider habe ich kein Beispiel gefunden!)

paste_button_callback

Ermöglicht individuelle Einfüge-Schaltflächen und wird z.B. in der Seitenstruktur verwenden, um die Icons abhängig von den Benutzerrechten zu deaktivieren (erfordert eine zusätzliche Prüfung mittels load_callback).

Dieser Auflistungscallback wird folgendermaßen in die Definition der Sortierung eingefügt:

Die Klasse, die den Callback verarbeitet kann dann zum Beispiel so aussehen:

Feldcallbacks

input_field_callback

Ermöglicht das Erstellen individueller Formularfelder und wird z.B. im Backend-Modul "Persönliche Daten" verwendet, um das "Daten bereinigen"-Feld zu erstellen. Achtung: Eingaben werden nicht automatisch gespeichert!

Dieser Feldcallback wird folgendermaßen in die Felddefinition eingefügt:

Die Klasse, die den Callback verarbeitet kann dann zum Beispiel so aussehen:

load_callback

Wird bei der Initialisierung eines Formularfeldes ausgeführt. Ermöglicht z.B. das Laden eines Standardwertes.

Dieser Feldcallback wird folgendermaßen in die Felddefinition eingefügt:

Die Klasse, die den Callback verarbeitet kann dann zum Beispiel so aussehen:

options_callback

Ermöglicht das Befüllen eines Drop-Down-Menüs oder einer Checkbox-Liste mittels einer individuellen Funktion. Kann z.B. für bedingte Fremdschlüssel-Relationen verwendet werden.

Dieser Feldcallback wird folgendermaßen in die Felddefinition eingefügt:

Die Klasse, die den Callback verarbeitet kann dann zum Beispiel so aussehen:

save_callback

Wird beim Abschicken eines Feldes ausgeführt. Ermöglicht z.B. das Hinzufügen einer individuellen Prüfung.

Dieser Feldcallback wird folgendermaßen in die Felddefinition eingefügt:

Die Klasse, die den Callback verarbeitet kann dann zum Beispiel so aussehen:

Globale Callbacks

oncopy_callback

Wird ausgeführt nachdem ein Datensatz dupliziert wurde. Hinzugefügt in Version 2.8.2.

Dieser Callback wird folgendermaßen in die DCA-Definition eingefügt:

Die Klasse, die den Callback verarbeitet kann dann zum Beispiel so aussehen:

oncut_callback

Wird ausgeführt nachdem ein Datensatz verschoben wurde. Hinzugefügt in Version 2.8.2.

Dieser Callback wird folgendermaßen in die DCA-Definition eingefügt:

Die Klasse, die den Callback verarbeitet kann dann zum Beispiel so aussehen:

ondelete_callback

Wird ausgeführt bevor ein Datensatz aus der Datenbank entfernt wird.

Dieser Callback wird folgendermaßen in die DCA-Definition eingefügt:

Die Klasse, die den Callback verarbeitet kann dann zum Beispiel so aussehen:

onload_callback

Wird bei der Initialisierung des DataContainer-Objekts ausgeführt. Ermöglicht z.B. das Prüfen von Zugriffsrechten oder die dynamische Änderung des Data Container Array zur Laufzeit.

Dieser Callback wird folgendermaßen in die DCA-Definition eingefügt:

Die Klasse, die den Callback verarbeitet kann dann zum Beispiel so aussehen:

onsubmit_callback

Wird beim Abschicken eines Backend-Formulars ausgeführt. Ermöglicht z.B. die Modifizierung der Formulardaten, bevor diese in die Datenbank geschrieben werden (wird in der Kalender-Erweiterung zur Intervalberechnung eingesetzt).

Dieser Callback wird folgendermaßen in die DCA-Definition eingefügt:

Die Klasse, die den Callback verarbeitet kann dann zum Beispiel so aussehen:

Zurück

Kommentare

Aufgrund der unklaren Rechtslage durch die DSGV habe ich mich entschlossen, die Kommentare bis auf Weiteres zu deaktivieren.