EVENT in viewforum anzeigen/einbinden

In diesem Forum gibt es Starthilfe zum neuen Extension-System von phpBB 3.1/3.2. Fragen zur Entwicklung von Extensions und zur Konvertierung von phpBB 3.0.x MODs sind ebenfalls willkommen.
Antworten
Benutzeravatar
sepp71
Mitglied
Beiträge: 919
Registriert: 23.12.2006 00:03

EVENT in viewforum anzeigen/einbinden

Beitrag von sepp71 »

Ich versuche gerade, die Advertisement Management ext. auf meine Bedürfnisse anzupassen. Dazu würde ich gern in der Viewforum an geeigneter Stelle (nach Abschluss einer bestimmten Zahl von Topicrows) über ein Event eine Anzeige einblenden. Style ist prosilver.

1.) Es gibt in der viewforum_body.html leider nicht so ein klares EVENT wie in der viewtopic_body.html (dort: viewtopic_body_postrow_post_after). Würde es reichen eine entsprechenden Code an der gewünschten Stelle einzufügen (z. B. viewforum_body_topicrow_topic_after) oder müßte dann auch andernorts etwas angepasst werden?
<!-- EVENT topiclist_row_append --> scheint mir nicht ganz am Ende der Topic-Zele zu liegen und damit ungeeignet zu sein, oder?

2.) Wie müsste in der entsprechenden Datei der einzufügende Code heißen und aufgebaut sein?
Ich dachte an viewforum_body_topicrow_topic_after.html oder eben viewforum_body:topiclist_row_append.html.
Als einfachste Übung dann erstmal

Code: Alles auswählen

<!-- IF ADS_ID_18 -->
<div>{ADS_18}<br>
<h1>TEST</h1></div>
<!-- ENDIF -->
Im Endzustand dann am liebsten mit S_ROW_COUNT == 3 o.ä.

Beides bekomme ich aber auch nach Rekompilieren der Styles, Cache löschen und Prüfen der Anzeigeneinstellungen der Ext. nicht angezeigt.
Kann mir jemand auf die Sprünge helfen?

Vielen Dank!

Sepp
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: EVENT in viewforum anzeigen/einbinden

Beitrag von gn#36 »

Du scheinst recht zu haben, in der derzeitigen Version gibt's dazu noch kein Event. Im aktuellen Entwicklungszweig von phpBB 3.1.x ist aber eins drin dazu, d.h. in der nächsten phpBB Version sollte eins drin sein, das du gebrauchen kannst:
Probier mal das Event viewforum_body_topic_row_before, damit müsstest du direkt vor einer Zeile landen. Alternativ landest du mit dem Event viewforum_body_topic_row_after direkt dahinter. Auch lassen sich Themen in der Liste damit dann an noch mehr Stellen ergänzen, da es noch zwei weitere neue Events dort gibt: viewforum_body_topic_row_append und viewforum_body_topic_row_prepend, die ein paar divs weiter "außen" stehen als die bisherigen Events.

Vom Aufbau her ist alles erlaubt was in der Themenliste stehen darf. Sprich: Es sollte innerhalb von <li> und </li> stehen (abgesehen von steuernden IFs o.ä. natürlich, schließlich willst du keine leeren Listenelemente einbauen. Wenn es ungefähr so wie eine Themenzeile aussehen sollte, dann solltest du ggf. mal einen Blick auf die viewtopic_body.html Template Datei deines Styles werfen, so eine Ergänzung wird z.B. die alternierenden Hintergründe ggf. durcheinander bringen, möglicherweise braucht dein <li> eine Klasse wie bg1 oder bg2 o.ä.

Zugriff auf den Row Count übrigens mit topicrow.S_ROW_COUNT, S_ROW_COUNT reicht nicht. Du kannst auch schauen ob der durch 3 teilbar ist um vor/nach jedem dritten Eintrag die Ergänzung zu machen.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
sepp71
Mitglied
Beiträge: 919
Registriert: 23.12.2006 00:03

Re: EVENT in viewforum anzeigen/einbinden

Beitrag von sepp71 »

Vielen Dank für die Tipps, die mir dann letztlich auf den richtigen Weg geholfen haben:
Die beiden Events viewforum_body_topic_row_append und viewforum_body_topic_row_prepend gibt es in meiner Version 3.1.6 von phpBB noch nicht.
Die vorhandenen Events viewforum_body_topic_row_before und viewforum_body_topic_row_after heißen korrekt nur topicrow_before bzw. topicrow_after, d.h. v.a. enthalten sie - anders als die anderen Template-Variablen, die ich so kenne, nicht den Namen der Datei, zu der sie gehören (viewtopic_body).
Hat ein bißchen gedauert bis ich das raushatte.
Erkenntnis des Tages: Die Variablennamen stehen stets vollständig im HTML-Quelltext und müssen nicht um den Dateinamen ergänzt werden (wenn er nicht sowieso schon im Variablennamen steht).
Beide Events kommen allerdings einigermaßen mitten in der Themenzeile aus und es ist mir nicht gelungen, sie so nachzubauen, dass das Design nach der entsprechenden Zeile nicht völlig zerschossen gewesen wäre.

Dafür war es ganz einfach, ein eigenes EVENT in die viewforum_body.html meines styles einzufügen: An der gewünschten Stelle einmal das neue "<!-- EVENT topiclist_row_after -->" einfügen und das war's.
Jetzt würde ich natürlich gern die Stelle treffen, an der diese Events zukünftig voraussichtlich landen werden. Ist das hoffentlich in viewtopic_body.html unmittelbar vor nachfolgendem Code?

Code: Alles auswählen

 <!-- BEGINELSE -->
	<!-- IF S_IS_POSTABLE -->
Danke!
Sepp
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: EVENT in viewforum anzeigen/einbinden

Beitrag von gn#36 »

Das kannst du ganz leicht selbst nachsehen:

https://github.com/phpbb/phpbb/tree/3.1 ... r/template

Das ist die aktuelle Entwicklungsversion (bzw. direkt die viewforum_body.html: https://github.com/phpbb/phpbb/blob/3.1 ... _body.html)

Nein, das Event ist an einer geringfügig anderen Stelle - noch innerhalb der Liste. Sollte vom Code her nur was ausmachen, wenn du am letzten Element der Liste was ergänzt.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
sepp71
Mitglied
Beiträge: 919
Registriert: 23.12.2006 00:03

Re: EVENT in viewforum anzeigen/einbinden

Beitrag von sepp71 »

Cool, so weit war ich bei github noch nicht vorgedrungen. Habe also mein selbstgebasteltes Event gleich mal umbenannt und verschoben.
Danke für den Tipp!

Sepp
Antworten

Zurück zu „Extension Bastelstube“