Seite 2 von 2

Re: [3.2] Prosilver: Headerbar: Die Bereiche verstehen ...

Verfasst: 06.12.2017 07:53
von Dr.Death
Kurz:

Sobald eine HTML Datei im Event Verzeichnis Deines Styles oder Extension liegt wird sie angezogen:

styles/style_name/template/event/*.html
ext/vendor/ext_name/styles/style_name/template/event/*.html

Die anzuziehende Event HTML Datei muss gleich dem Event Namen lauten um an der passenden Stelle geladen zu werden.

Re: [3.2] Prosilver: Headerbar: Die Bereiche verstehen ...

Verfasst: 06.12.2017 08:22
von canonknipser
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

Re: [3.2] Prosilver: Headerbar: Die Bereiche verstehen ...

Verfasst: 07.12.2017 06:23
von ZNC
Die Events
a) <!-- EVENT overall_header_headerbar_before -->
b) <!-- EVENT overall_header_searchbox_before -->
c) <!-- EVENT overall_header_searchbox_after -->
d) <!-- EVENT overall_header_headerbar_after -->

sind zur Zeit nur leere Platzhalter, da weder im prosilver- noch im überall gültigen all-Styleverzeichnis eine HTML-Datei gleichen names existieren. Jedoch könnten diese irgendwann durch irgendeine Extension "gefüttert" werden, da sie als Standardplatzhalter fungieren. Deshalb könnte ein Löschen dieser Platzhalter in dem overall_header.html meines Styles eher kontraproduktiv sein.

Ich hoffe, dass ich alles richtig verstanden habe, lieben Dank für Eure Geduld :-?

Re: [3.2] Prosilver: Headerbar: Die Bereiche verstehen ...

Verfasst: 07.12.2017 06:35
von canonknipser
Ja, ALLE template-Events aus prosilver sollten in selbsterstellten Styles vorhanden sein, ansonsten könnten einige Erweiterungen nicht funktionieren ;)

Re: [3.2] Prosilver: Headerbar: Die Bereiche verstehen ...

Verfasst: 07.12.2017 13:22
von ZNC
Vielen Dank. Somit ist dieser Post ERLEDIGT :grin: