Seite 1 von 2

[3.2] Code stelle frage

Verfasst: 21.12.2019 12:40
von Dler
Hi,

Ich hätte eine frage zu diesem code abschnitt.

Code: Alles auswählen

<div class="forabg">
	<div class="inner">
		<ul class="topiclist">
			<li class="header">
				<!-- IF IS_PHPBB31 --><dl class="icon"><!-- ENDIF --><!-- IF IS_PHPBB32 --><dl class="row-item"><!-- ENDIF -->
					<dd style="width:100%; text-align:center;"><b><font size="2">Text</b></dd>
				</dl>
			</li>
		</ul>
		</font>
Was genau bewirkt diese stelle ?

Code: Alles auswählen

<!-- IF IS_PHPBB31 --><dl class="icon"><!-- ENDIF --><!-- IF IS_PHPBB32 -->
Danke im voraus.

Re: [3.2] Code stelle frage

Verfasst: 21.12.2019 13:06
von chris1278
Das ist eigentlich recht simpel erklärt. In den IF Anweisungen sind befehle integriert, die nur ausgeführt werden, wenn die variable zutrifft.

Also nehmen wir mal besagte zeile:

Code: Alles auswählen

<!-- IF IS_PHPBB31 --><dl class="icon"><!-- ENDIF --><!-- IF IS_PHPBB32 --><dl class="row-item"><!-- ENDIF -->
In dieser Zeile sind 2 IF abfragen.

1. <!-- IF IS_PHPBB31 --><dl class="icon"><!-- ENDIF -->
2. <!-- IF IS_PHPBB32 --><dl class="row-item"><!-- ENDIF -->

So in desem Fall geht es um die "class" Angaben die sich bei der foren version 3.1 zu 3.2 unterscheiden.

Der Befehl Punkt 1 würde durch diese IF Variabel nur geladen werden, wenn es sich bei dem Forum um ein 3.1.x Reihe Forum handelt.

Bei Befehl Punkt 2 genau dasselbe allerdings, nur wenn es sich bei dem Forum um eins der 3.2.x Reihe handelt.

Du kannst also folgende These aufstellen:

Bei einer Abfrage in form <!-- IF Variabel --> Text oder option <!-- ENDIF --> Wird folgende frage ausgeführt entspricht die VRIABELE der Vorgabe wird der Code bzw. Befehl innerhalb der abfrage ausgeführt und ansonsten nicht.

Re: [3.2] Code stelle frage

Verfasst: 21.12.2019 13:36
von Dler
Danke chris1278 für die super erklärung.

Wenn man diese 2 ganz weglässt was ist dann ?

Und wenn es jetzt z.b. ein phpbb 3.3 board ist?

Re: [3.2] Code stelle frage

Verfasst: 21.12.2019 13:47
von chris1278
Also was phpbb 3.3 angeht so kann es sein das sich die Befehle nochmals ändern und es evtl. eine weitere variabele dazukommt. Du solltest das aber drin lassen. Im grunde ist es ja so das des sich dabei um die Funktionalität handelt dieses für phpbb 3.1.x sowie auch für version 3.1.x kompatibel zu machen. Deswegen kannst du es ruhig so lassen.

Re: [3.2] Code stelle frage

Verfasst: 21.12.2019 13:49
von Dler
Ok super dank dir.

Re: [3.2] Code stelle frage

Verfasst: 21.12.2019 14:03
von Dr.Death
Aus welcher Extension sind denn diese Code Stellen ?


Die Variablen IS_PHPBB32 und IS_PHPBB31 werden im normalen phpBB nicht erzeugt.....

Wenn nun ein phpBB 3.3 Board diese Extension benutzt, würden beide IF Abfragen nicht funktionieren bzw. der Extension Autor müsste seine Extension anpassen.

Re: [3.2] Code stelle frage

Verfasst: 21.12.2019 14:09
von chris1278
Ich denke das ist mit Sicherheit eine Extension, um die es geht. Da so weit mir bekannt ist solche abfragen nicht im Basis phpbb selber vorkommen.

Re: [3.2] Code stelle frage

Verfasst: 21.12.2019 14:14
von Dler
Ja es ist eine Extension richtig.

Ich habe testweise das phpbb 3.3.0 b2 installiert und da wird mir eben diese stelle nicht angzeigt.

Entferne ich diese if stellen, wird mir die stelle angezeigt.

Re: [3.2] Code stelle frage

Verfasst: 21.12.2019 14:17
von Dr.Death
Wie gesagt, unter phpBB 3.3.x wird es nicht funktionieren, solange der Extension Autor seine Extension nicht für phpBB 3.3.x angepasst hat.

Die Erkennung funktioniert wie folgt: viewtopic.php?p=1362808#p1362808

Re: [3.2] Code stelle frage

Verfasst: 21.12.2019 14:18
von chris1278
Das schon richtig weil diese Anzeige nur bei einer der beiden Einstellungen angezeigt wird. evtl. versuche mal folgende änderung.

Ersetze diese zeile hier:

Code: Alles auswählen

<!-- IF IS_PHPBB31 --><dl class="icon"><!-- ENDIF --><!-- IF IS_PHPBB32 --><dl class="row-item"><!-- ENDIF -->
mal durch folgende:

Code: Alles auswählen

<!-- IF IS_PHPBB31 --><dl class="icon"><!-- ELSE --><dl class="row-item"><!-- ENDIF -->