IF-Variablen mit Javascript verbinden

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.
Antworten
Malte

IF-Variablen mit Javascript verbinden

Beitrag von Malte »

Hallo,

wir hatten bereit ein paar kleine Dinge was Javascripte betrifft in einem anderen Thema geklärt. Nun habe ich jedoch nochmal eine kleine Frage:
Wir hatten bereits folgenden Text erstellt (Thema: viewtopic.php?f=93&t=219734):

Code: Alles auswählen

<script type="text/javascript">
// <![CDATA[
    var test_lang_variable1  = "{LA_TEST_LANG_VARIABLE1}";
    var test_lang_variable2  = "{LA_TEST_LANG_VARIABLE2}";
    var test_lang_variable3  = "{LA_TEST_LANG_VARIABLE3}";
// ]]>
</script>
<script type="text/javascript" src="{T_SUPER_TEMPLATE_PATH}/datei.js"></script>
Meine Frage ist, ob und wie man die IF-Variablen dazu einfügen kann. Manche Javascripte sind zum Beispiel schlecht für den Internet Explorer, weswegen ich selbigen für manche Javascripte deaktivieren möchte. Das geht mit IF-Variablen der Form <!--[if !IE] -->, <!--[if IE]> oder der gleichen. Des weiteren möchte ich auch Variablen der Form <!-- IF S_USERNAME != 'Benutzername' --> und <!-- S_USERNAME == 'Benutzername' --> hinzufügen kurz gesagt alle möglichen Variablen der Art. Nur das Problem ist, früher habe ich das schon mal versucht, wenn man Javascripte mit solchen Befehlen umschließt (natürlich mit <!-- ENDIF -->) geht das leider nicht. Dann scheidet er automatisch alle anderen Inhalte der Datei, ab der Textpassage mit dem Javascript ab, als ob der Rest gar nicht da wäre.

Weiß jemand, ob man das mit den IF-Befehlen irgendwie umsetzen kann?
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: IF-Variablen mit Javascript verbinden

Beitrag von Pyramide »

Die conditional comments müssen in der Form in der HTML-Datei stehen. Für JScript gibt es noch eine ähnliche Variante: http://en.wikipedia.org/wiki/Conditiona ... in_JScript

So Dinge wie S_USERNAME sind am einfachsten nach der selben Logik als Javascript-Variablen bereitzustellen und dann die Vergleiche in Javascript zu machen.
KB:knigge
Malte

Re: IF-Variablen mit Javascript verbinden

Beitrag von Malte »

Danke Pyramide,

ich habe mir das ganze jetzt mal durchgelesen, aber sehe noch nicht so ganz durch.
Kann mir das jemand mal bitte anhand des Beispiels <!-- S_USERNAME == 'Benutzername' --> erklären?
Benutzeravatar
BNa
Valued Contributor
Beiträge: 3169
Registriert: 12.04.2010 23:51
Kontaktdaten:

Re: IF-Variablen mit Javascript verbinden

Beitrag von BNa »

Malte hat geschrieben:Nur das Problem ist, früher habe ich das schon mal versucht, wenn man Javascripte mit solchen Befehlen umschließt (natürlich mit <!-- ENDIF -->) geht das leider nicht.
Das stimmt so nicht, ich benutze IF Abfragen für eine Vielzahl von JavaScripten. Wie so oft hilft hier CDATA.

zB:

Code: Alles auswählen

<script type="text/javascript">
// <![CDATA[
    <!-- IF USERNAME == 'Benutzername' --> 
    var test_lang_variable1A  = "{LA_TEST_LANG_VARIABLE1A}";
    <!-- ELSE -->
    var test_lang_variable1B  = "{LA_TEST_LANG_VARIABLE1B}";
    <!-- ENDIF -->
    var test_lang_variable2  = "{LA_TEST_LANG_VARIABLE2}";
    var test_lang_variable3  = "{LA_TEST_LANG_VARIABLE3}";
// ]]>
</script>
Funktioniert einwandfrei..

Wo Du <!-- IF [b][color=#BF0000]S_[/color][/b]USERNAME != 'Benutzername' --> her hast, weiss ich nicht.

Innerhalb von JS funktionierts dann wieder mit dem bekannten Trick
viewtopic.php?p=1253919#p1253919

oder auch mit den von Pyramide verlinkten Conditional comments
Malte

Re: IF-Variablen mit Javascript verbinden

Beitrag von Malte »

Aha ich meine es jetzt verstanden zu haben, aber es geht irgendwie noch nicht so ganz. Also folgendes Szenario: Ich habe 2. Javascripte, die die selben Sprachvariablen nutzen, also nutze ich es wie in dem anderen Thema folgendermaßen:

Code: Alles auswählen

<script type="text/javascript">
// <![CDATA[
    var test_lang_variable1  = "{LA_TEST_LANG_VARIABLE1}";
    var test_lang_variable2  = "{LA_TEST_LANG_VARIABLE2}";
    var test_lang_variable3  = "{LA_TEST_LANG_VARIABLE3}";
// ]]>
</script>
<script type="text/javascript" src="{T_SUPER_TEMPLATE_PATH}/datei.js"></script>
<script type="text/javascript" src="{T_SUPER_TEMPLATE_PATH}/datei2.js"></script>
Bisher funktionieren die Dateien beide perfekt mit den oben genannten Sprachvariablen. Nun möchte ich das 2. Javascript abhängig vom Username-Befehl machen.

Also da soll <!-- IF USERNAME == 'Benutzername' --> <!-- ENDIF --> rum. Wie stelle ich das am besten an, die Sprachvariablen gelten ja für beide Javascripte, aber die IF-Befehle nur für das 2.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: IF-Variablen mit Javascript verbinden

Beitrag von Pyramide »

Du setzt die IF-Bedingung einfach um den <script> Block, der ist ja innerhalb der Template-Datei.

Ich würde vorschlagen, dass du dich erstmal in die Grundlagen einarbeitest, was Templates, HTML und Javascript sind bzw. was an welcher Stelle (Client/Server, Reihenfolge, ...) ausgeführt wird - dann beantworten sich nämlich 90% der Fragen von selbst.
KB:knigge
Malte

Re: IF-Variablen mit Javascript verbinden

Beitrag von Malte »

Ja was das alles ist, ist mir bereits bekannt, ich kann html und Javascript bereits Recht gut programmieren und halbwegs ordentlich mit phpBB umgehen, aber die gegenseitige Einbindung habe ich bisher noch nie benutzt, das muss ich erst erlernen. Ich danke dir für deine Hilfe Pyramide. So wie du gesagt hast, habe ich es auch gemacht nur es ging nicht. Jetzt geht es inzwischen ich habe den Fehler gefunden:
BNa hat geschrieben:Wo Du <!-- IF S_USERNAME != 'Benutzername' --> her hast, weiss ich nicht.
Ich hatte es nach diesem Tipp ohne S_ versucht, aber es ging nicht. Inzwischen geht es aber mit S_, das war der Fehler. Keine Ahnung warum es nun doch mit S_ funktioniert, trotzdem danke auch an dich für deine Hilfe BNa.

Da habe ich mal wieder was gelernt. :D
Antworten

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