Seite 1 von 1
IF-Variablen mit Javascript verbinden
Verfasst: 20.12.2011 18:54
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?
Re: IF-Variablen mit Javascript verbinden
Verfasst: 20.12.2011 19:05
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.
Re: IF-Variablen mit Javascript verbinden
Verfasst: 20.12.2011 19:23
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?
Re: IF-Variablen mit Javascript verbinden
Verfasst: 20.12.2011 20:02
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
Re: IF-Variablen mit Javascript verbinden
Verfasst: 21.12.2011 15:00
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.
Re: IF-Variablen mit Javascript verbinden
Verfasst: 21.12.2011 16:11
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.
Re: IF-Variablen mit Javascript verbinden
Verfasst: 21.12.2011 16:54
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.
