IF Variable für Javascript erstellen

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
Benutzeravatar
Kampf Katze
Mitglied
Beiträge: 126
Registriert: 08.11.2004 19:36
Wohnort: Berlin

IF Variable für Javascript erstellen

Beitrag 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.
Benutzeravatar
Nuramon
Mitglied
Beiträge: 250
Registriert: 05.02.2012 21:45
Wohnort: Solingen
Kontaktdaten:

Re: IF Variable für Javascript erstellen

Beitrag von Nuramon »

Ich wüsste nicht, wie man das Umsetzen kann. JavaScript ist ja rechnergebunden und Die Variablen werden im PHP serverseitig erstellt.
Das Pinke Forum
Das Pinke Forum - werde Teil einer freundlichen Community, die dir bei Fragen rund um Liebe, Sex, Ernährung, Schule oder bei Problemen aller Art zur Seite steht! Verfasse Beiträge, erstelle Threads und lern nette Leute kennen; kostenlos und toll betreut.
Benutzeravatar
Kampf Katze
Mitglied
Beiträge: 126
Registriert: 08.11.2004 19:36
Wohnort: Berlin

Re: IF Variable für Javascript erstellen

Beitrag 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 ;-)
Benutzeravatar
Nuramon
Mitglied
Beiträge: 250
Registriert: 05.02.2012 21:45
Wohnort: Solingen
Kontaktdaten:

Re: IF Variable für Javascript erstellen

Beitrag 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?
Das Pinke Forum
Das Pinke Forum - werde Teil einer freundlichen Community, die dir bei Fragen rund um Liebe, Sex, Ernährung, Schule oder bei Problemen aller Art zur Seite steht! Verfasse Beiträge, erstelle Threads und lern nette Leute kennen; kostenlos und toll betreut.
Benutzeravatar
Kampf Katze
Mitglied
Beiträge: 126
Registriert: 08.11.2004 19:36
Wohnort: Berlin

Re: IF Variable für Javascript erstellen

Beitrag 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.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: IF Variable für Javascript erstellen

Beitrag 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.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
Kampf Katze
Mitglied
Beiträge: 126
Registriert: 08.11.2004 19:36
Wohnort: Berlin

Re: IF Variable für Javascript erstellen

Beitrag 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?
Benutzeravatar
Nuramon
Mitglied
Beiträge: 250
Registriert: 05.02.2012 21:45
Wohnort: Solingen
Kontaktdaten:

Re: IF Variable für Javascript erstellen

Beitrag 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:

Code: Alles auswählen

<!-- IF $js --> 
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
Das Pinke Forum
Das Pinke Forum - werde Teil einer freundlichen Community, die dir bei Fragen rund um Liebe, Sex, Ernährung, Schule oder bei Problemen aller Art zur Seite steht! Verfasse Beiträge, erstelle Threads und lern nette Leute kennen; kostenlos und toll betreut.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Re: IF Variable für Javascript erstellen

Beitrag 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.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
Kampf Katze
Mitglied
Beiträge: 126
Registriert: 08.11.2004 19:36
Wohnort: Berlin

Re: IF Variable für Javascript erstellen

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

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