Seite 1 von 1
IF Variable für Javascript erstellen
Verfasst: 16.09.2012 19:11
von Kampf Katze
Gibt es eine Möglichkeit eine IF Variable zu erstellen die bei aktiven oder inaktiven JavaScript reagiert?
Ich möchte gerne ein paar Elemente per Lightview umsetzen wie z.B. wenn der Nutzer auf das Avatarbild eines Autors klickt, dass die Infos über den Nutzter dann in einem iFrame von einer modifizierten Seite via Lightview geöffnet werden. Hat der Nutzer aber kein aktives JavaScript, soll die gewohnte Seite von phpBB geöffnet werden.
Ich habe soweit auch schon eine Lösung gefunden die recht schlicht ist.
Code: Alles auswählen
<noscript><a href="{postrow.U_POST_AUTHOR}">{postrow.POSTER_AVATAR}</a></noscript><a href="{postrow.U_POST_AUTHOR}">{postrow.POSTER_AVATAR}</a>
Mit dem Befehl "
noscript" habe ich mein Ziel soweit schon erreicht. Aber ich würde lieber eine eigene Variable dafür nutzen um Ketten in Form von IF -> ELSE -> ENDIF zu generieren.
Also z.B. so:
Code: Alles auswählen
<!-- IF JS --><a href="{postrow.U_POST_AUTHOR}">{postrow.POSTER_AVATAR}</a> <!-- ELSE --><a href="{postrow.U_POST_AUTHOR}">{postrow.POSTER_AVATAR}</a><!-- ENDIF -->
Kann mir jemand sagen wie ich das umsetzen kann?
Vielen Dank.
Re: IF Variable für Javascript erstellen
Verfasst: 16.09.2012 19:15
von Nuramon
Ich wüsste nicht, wie man das Umsetzen kann. JavaScript ist ja rechnergebunden und Die Variablen werden im PHP serverseitig erstellt.
Re: IF Variable für Javascript erstellen
Verfasst: 16.09.2012 19:17
von Kampf Katze
Na das mit dem Noscript funktioniert ja. Sprich je nach dem ob JavaScript geht oder nicht, agiert auch dann Lightview. Habs erfolgreich unter Chrome und Safari getestet bisher.
Die Frage dreht sich nur darum, wie ich eine IF Variable erstellen kann anstelle des noscript Befehles.
EDIT:
Nun weiß ich warum du es in Frage gestellt hast ob das geht... In meinem Beispiel kann man wohl nicht direkt zu einer modifizierten html Seite verlinken wie z.B. viewprofile_lightviewversion.html und viewprofile.html (Namen frei erfunden)
Es ist aber auch nur ein Beispiel meines Ziels... Primär geht es mir um den Befehl und wenn noch jemand eine Idee hat wie man bei Anfrage A Seite 1 lädt und bei Anfrage B die Alternativseite 1 währe das natürlich fantastisch

Re: IF Variable für Javascript erstellen
Verfasst: 16.09.2012 19:29
von Nuramon
Kampf Katze hat geschrieben:Na das mit dem Noscript funktioniert ja. Sprich je nach dem ob JavaScript geht oder nicht, agiert auch dann Lightview. Habs erfolgreich unter Chrome und Safari getestet bisher.
Ja, ich verstehe schon, dass das <noscript> geht, das habe ich auch nicht bezweifelt.
Aber <noscript> ist HTML, somit clientseitig. Wie möchtest du die Daten davon in PHP, also den Server bekommen?
Re: IF Variable für Javascript erstellen
Verfasst: 16.09.2012 19:32
von Kampf Katze
Nun die Idee das es gehen könnte lieferte mir dieser Post hier den ich vor langer Zeit mal entdeckt und archiviert habe...
viewtopic.php?f=93&t=183626
Aber das übersteigt meine Verständnis diese Anleitung so das ich daraus nichts erkennen kann, um es für mich zu nutzen bzw. für meine Idee.
Aber es zeigt mir das es gehen sollte. Also das ich einen Tag / Befehl generiere der dan aus dem Hintergrund die Information zieht, JavaScript zu nutzen oder auch nicht.
Bei Wordpress kann man ja bei Bedarf auch eigene Tags generieren auf die dann das System reagiert.
Re: IF Variable für Javascript erstellen
Verfasst: 16.09.2012 19:35
von Miriam
Irgendwie sehe ich hier wohl das Problem nicht:
Code: Alles auswählen
<script type="text/javascript">
document.write('<a href="{postrow.U_POST_AUTHOR}">Dein Link mit Javascript aktiviert</a>');
</script>
<noscript>
<a href="{postrow.U_POST_AUTHOR}">Dein Link ohne Javascript aktiviert</a>
</noscript>
Das ist doch schon mehr oder minder 'ne IF -- ELSE Konstruktion.
Re: IF Variable für Javascript erstellen
Verfasst: 16.09.2012 19:42
von Kampf Katze
Hallo Miriam
Das ist dann aber unterm Strich die gleiche Lösung wie ich sie nun schon entdeckt habe oder?
Deine ermöglicht vermutlich noch die Option, ein gezieltes JavaScript ein zu setzen das nur dort greifen soll.
Das Lightview (
http://projects.nickstakenburg.com/lightview) habe ich direkt im header vom Template eingebunden. Dort ist dann zu den benötigten Dateien verlinkt wie jQuerey etc.
Im Forum selbst nehme ich dann den class Befehl um Lightview ab zu rufen. Das sieht anhand meines genannten Beispieles am Ende so aus:
Code: Alles auswählen
<!-- IF postrow.U_POST_AUTHOR --><noscript><a href="{postrow.U_POST_AUTHOR}">{postrow.POSTER_AVATAR}</a></noscript><a href="{postrow.U_POST_AUTHOR}" class="lightview" data-lightview-type="iframe">{postrow.POSTER_AVATAR}</a><!-- ELSE -->{postrow.POSTER_AVATAR}<!-- ENDIF --><br />
<!-- ENDIF -->
Aber so weit wollte ich nun garnicht ausholen hier und kehre auf die eigentliche Ausgangsfrage zurück. Kann man einen eigenen Tag / Befehl generieren auf den phpBB im Template dann reagiert wie z.B. bei dem noscript Befehl?
Re: IF Variable für Javascript erstellen
Verfasst: 16.09.2012 19:48
von Nuramon
Füg mal das ganz oben ein:
Code: Alles auswählen
<script type="text/javascript">
<!-- DEFINE $js = true -->
</script>
<noscript>
<!-- DEFINE $js = false-->
</noscript>
Und dann kannst du es so benutzen:
EDIT://
Ist nicht getestet, solte aber funktionieren.
Es wird halt im Javascript kein Script aufgeführt, sondern eine Template-Variable erstellt. Sonst wird sie halt erstellt, aber mit false.
Quelle siehe hier:
Tutorial.Template syntax
Re: IF Variable für Javascript erstellen
Verfasst: 16.09.2012 19:52
von Miriam
Es ist nicht ganz die selbe Lösung, denn Dein Code gibt den Link heraus, wenn Javascript nicht aktiviert wurde und außerdem einen weiteren (evtl.) falschen Link, da der für User gedacht ist, die JS aktiviert haben.
Nimm mal bitte diesen Code, speicher ihn als HTML datei ab und rufe die Datei im Browser mal mit und dann ohne JS aktiviert auf. Vllt wird dann klar, was ich meinte:
Code: Alles auswählen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>JS Test</title>
</head>
<body>
<script type="text/javascript">
document.write('<a href="https://www.phpbb.de/community/">Dein Link mit Javascript aktiviert</a>');
</script>
<noscript>
<a href="https://www.phpbb.de/community/viewtopic.php?f=93&t=224693">Dein Link ohne Javascript aktiviert</a>
</noscript>
</body>
</html>
Und auf Deine Ausgangsfrage zurück kommend:
- Ja, man / frau kann selbst Entscheidungsvariablen für phpBB3 HTML Templates generieren.
- Diese gelten aber nicht für Client seitige Funktionen wie JS.
Re: IF Variable für Javascript erstellen
Verfasst: 18.09.2012 23:37
von Kampf Katze
Danke euch beiden für die letzten beiden Tipps. Sie klingen beide interessant und ich werde sie mir evt. am WE näher ansehen. Sollte ich noch Fragen haben, dann melde ich mich hier wieder.