Dr.Death hat geschrieben:Kurz:
Und lang:
die "Events" in den Standard-Templates sind Platzhalter. An diese Stellen kann von Erweiterungen (oder auch wie von Dr.Death erwähnt "normalen" Styles) Code eingestreut werden.
Beim Verarbeiten von Template-Dateien schaut das template-System von phpBB nach, ob irgendeine aktive Erweiterung im jeweiligen
event
-Unterverzeichnis des Styles (oder des Vater-Styles bei Style-Vererbung) eine Datei mit dem Namen des Events liegen hat. Wenn ja, wird diese Datei genau so verarbeitet wie jede andere Style-Datei auch, die mittels INCLUDE (z.B. die
overall_header.html
) eingebunden wird. Das können auch mehrere aus unterschiedlichen Extensions sein, die dann (in zufälliger Reihenfolge!) hintereinander eingetragen werden.
Der Inhalt kann eines event-Templates ist der gleiche wie in jedem anderen phpBB-template auch: html-Code, der mittels Variablen und Steuerbefehlen bestückt wird.
Vielleicht mal ein praktisches Beispiel (ist jetzt aus meiner Erweiterung

):
Im prosilver-Standard-Template zur Ausgabe von Dateianhängen
attachment.html
gibt es einen Event
attachment_file_append
->
https://github.com/canonknipser/phpbb/b ... .html#L120
Meine Extension nutzt diesen Event, um dort eine Tabelle mit Daten auszugeben, dazu habe ich im Verzeichnis
styles/all/template/event
(
all
als "Großvater" aller Styles, also auch von prosilver) eine Datei
attachment_file_append.html
->
https://github.com/canonknipser/viewexi ... ppend.html.
Bei der Ausgabe eines Dateianhangs wird dieses Template
immer mit ausgegeben, wenn meine Extension aktiv ist. Über Variablen, die im php-Code der Extension befüllt werden, wird gesteuert, ob überhaupt etwas ausgegeben werden soll. Das ist genau so wie im Basis-Code auch.
Im template findest du dann
wie in jedem anderen template auch.
Lesetipp: In der Entwicklerdokumentation findest du auch einen Abschnitt zu template-Events:
https://area51.phpbb.com/docs/dev/exten ... -listeners