If Bedingungen in Templates

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
timotheus
Mitglied
Beiträge: 42
Registriert: 27.01.2010 18:14

If Bedingungen in Templates

Beitrag von timotheus »

Hola Gemeinde :),

ich hab mal wieder eine Frage. Welche If Bedingungen gibt es bei phpbb?

Hintergrund ist, dass ich im Footer ein Script habe, welches nicht in der suche, Anmeldung/Registrierung oder so ausgeführt werden soll. Allerdings auch nicht in viewtopic...#unread

Z.B.

Code: Alles auswählen

<!-- IF U_PRINT_TOPIC -->
code balbla..
<!-- ENDIF-->
Funktioniert schon ganz gut. So wird der Code aber nur in der Beitragansicht angezeigt - logisch.

Gibt es ähnliche Bedingungen für Forum, Index, Galerie oder der Gleichen? U_PRINT_FORUM geht nicht?!

Oder wär es einfacher den eigentlichen Code dann nur in die diversen Hauptdateien zu schreiben (viewtopic, viewforum, index u.s.w.)

Hoffe ihr habt ne Idee.

Danke
Timotheus
Wie ich bereits sagte, ich wiederhole mich nie!
Benutzeravatar
WileCoyote
Mitglied
Beiträge: 901
Registriert: 13.07.2011 07:38
Wohnort: Österreich

Re: If Bedingungen in Templates

Beitrag von WileCoyote »

In dem von dir angegeben Beispiel wird dein Script nur ausgeführt, wenn auf der Seite, auf der du dich gerade befindest die Bedingung U_PRINT_TOPIC erfüllt ist. Im Normallfall sollte das nur in der Themenansicht der Fall sein. Daher wäre es besser, wenn du im Footer (bezogen auf dein Beispiel) z.B folgende IF-Abfrage verwendest:

Code: Alles auswählen

<!-- IF not ($_SERVER['SCRIPT_NAME'] == '/ucp.php' or $_SERVER['SCRIPT_NAME'] == '/search.php' or $_SERVER['SCRIPT_NAME'] == '/viewtopic.php') -->
<Ausführung deines Scripts>
<!-- ENDIF -->
Zuletzt geändert von WileCoyote am 03.07.2012 20:20, insgesamt 2-mal geändert.
Gruß WileCoyote
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: If Bedingungen in Templates

Beitrag von Miriam »

Code: Alles auswählen

<!-- IF not ($_SERVER['SCRIPT_NAME'] == '/index.php' or $_SERVER['SCRIPT_NAME'] == '/viewforum.php' or $_SERVER['SCRIPT_NAME'] == '/viewtopic.php') -->
    <Ausführung deines Scripts>
    <!-- ENDIF -->
Bist Du sicher?

Sollte es nicht eher so aussehen:

Code: Alles auswählen

<!-- IF SCRIPT_NAME == "portal" -->bla bla <!-- ENDIF -->
Lesestoff:
http://wiki.phpbb.com/Global_Template_Variables
http://wiki.phpbb.com/Tutorial.Template_syntax
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
WileCoyote
Mitglied
Beiträge: 901
Registriert: 13.07.2011 07:38
Wohnort: Österreich

Re: If Bedingungen in Templates

Beitrag von WileCoyote »

Ups ich hatte vergessen etwas zu ändern, damit es zu seinem Beispiel passt. Ansonsten bin ich mir ziemlich sicher, dass das paßt. Das Script soll nicht ausgeführt werden, wenn man bei der Anmeldung oder Registrierung ist, sich in der Suche und oder der Themenansicht befindet. Auf alle restlichen Seiten soll es ausgeführt werden.
Gruß WileCoyote
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: If Bedingungen in Templates

Beitrag von Miriam »

Ich habe das inhaltlich verstanden. Wunderte mich nur über das hier, also daß Server-Variablen direkt im Template eingebaut werden könen: $_SERVER['SCRIPT_NAME']. Und es klappt tatsächlich. :o
Wieder was dazu gelernt.

Edit:
Irgendeinen Haken gibt es doch immer, wenn man sich nicht an die phpBB3 Vorgaben hält: Bei Aufruf in einem Unter-Verzeichnis, paßt das so nicht, mit SCRIPT_NAME als Template-Variable schon.
(klick)
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
timotheus
Mitglied
Beiträge: 42
Registriert: 27.01.2010 18:14

Re: If Bedingungen in Templates

Beitrag von timotheus »

Danke euch allen.

Klappt wunderbar, habs jetzt noch ein bissl angepasst. Und füge einfach alle Seiten ein, in denen das Script ausgeführt werden soll ein. Ist einfacher als andersrum, so wie WileCoyote es verstanden hat ;). Hab mich aber auch blöd ausgedrückt.

Code: Alles auswählen

<!-- IF ($_SERVER['SCRIPT_NAME'] == '/index.php' or $_SERVER['SCRIPT_NAME'] == '/neueSeite.php' ) -->
Auf jedenfall danke euch allen.

Eine kleine Frage noch - Wie kann ich jetzt die viewtopic.php...#unread wieder ausschließen?
Wie ich bereits sagte, ich wiederhole mich nie!
Benutzeravatar
WileCoyote
Mitglied
Beiträge: 901
Registriert: 13.07.2011 07:38
Wohnort: Österreich

Re: If Bedingungen in Templates

Beitrag von WileCoyote »

Miriam hat geschrieben:Irgendeinen Haken gibt es doch immer, wenn man sich nicht an die phpBB3 Vorgaben hält: Bei Aufruf in einem Unter-Verzeichnis, paßt das so nicht, mit SCRIPT_NAME als Template-Variable schon.
Ich habe auch schon öfter mal mit SCRIPT_NAME Probleme gehabt. Daher bevorzuge ich es im Prinzip, eigene, an die Situation angepaßte Switches z.b. in der functions.php (je nachdem ob ich den Switch global benötige oder nicht) zu definieren. Schneller und mit weniger Aufwand geht es halt mit den angeführten Beispiel(en) direkt in der Template-Datei.
timotheus hat geschrieben:Eine kleine Frage noch - Wie kann ich jetzt die viewtopic.php...#unread wieder ausschließen?

Code: Alles auswählen

<!-- IF ($_SERVER['SCRIPT_NAME'] == '/index.php' or $_SERVER['SCRIPT_NAME'] == '/neueSeite.php') and not $_SERVER['SCRIPT_NAME'] == '/viewtopic.php' -->
Zuletzt geändert von WileCoyote am 03.07.2012 20:59, insgesamt 1-mal geändert.
Gruß WileCoyote
timotheus
Mitglied
Beiträge: 42
Registriert: 27.01.2010 18:14

Re: If Bedingungen in Templates

Beitrag von timotheus »

WileCoyote :),

so fliegt doch aber die gesamte viewtopic wieder raus ich will ja nur, wenn #unread hinten dran hängt...?! Geht das überhaupt?
Wie ich bereits sagte, ich wiederhole mich nie!
Benutzeravatar
WileCoyote
Mitglied
Beiträge: 901
Registriert: 13.07.2011 07:38
Wohnort: Österreich

Re: If Bedingungen in Templates

Beitrag von WileCoyote »

timotheus hat geschrieben: Geht das überhaupt?
Nein, weil dazwischen die Foren- und Themen-ID fehlen würde. Das müßte man mit viel mehr Aufwand über die functions.php lösen.
Gruß WileCoyote
timotheus
Mitglied
Beiträge: 42
Registriert: 27.01.2010 18:14

Re: If Bedingungen in Templates

Beitrag von timotheus »

OK wo kann ich mich denn da reinlesen, hast du evtl. noch n link, dann geb ich auch Ruhe fürs Erste ;).

Aber nochmals Danke euch.
Wie ich bereits sagte, ich wiederhole mich nie!
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“