Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Template general.js.php und $CURRENT_TEMPLATE mit JavaScript

    Benny

    • Mitglied
    • Beiträge: 245
    Hallo Leute,

    hoffe Ihr könnt mir kurz helfen, denn JavaScript ist nicht meine Sprache...

    Es gibt ja die Möglichkeit per PHP das aktuell gewählte Template zu definieren ala:

    Code: PHP  [Auswählen]
    define('TEMPLATE','templates/'.CURRENT_TEMPLATE.'/');

    Denn CURRENT_TEMPLATE gibt es ja schon. Das gleiche suche ich nun für JavaScript  damit dort ein Bildpfad direkt darauf zugreifen kann.

    Habt Ihr da einen Gedankenanstoß für mich?
    Wenn ich weiß wo, kann ich mich auch in die richtige Funktion hineinlesen. ^-^

    Linkback: https://www.modified-shop.org/forum/index.php?topic=17351.0

    Matt

    • Experte
    • Beiträge: 4.241
    Re: Template general.js.php und $CURRENT_TEMPLATE mit JavaScript
    Antwort #1 am: 13. Dezember 2011, 21:26:24
    Das Konzept von Konstanten ist Javascript völlig fremd. Du kannst eine Variable im globalen Scope definieren, indem du sie außerhalb einer Funktion ganz am Anfang mit

    Code: Javascript  [Auswählen]
    var TEMPLATE = 'irgendwas';

    definierst. Die Großschreibung ist dabei nur für dich interessant, um die zu symbolisieren, dass du die Variable wie eine Konstante behandeln sollst. Intern funktioniert sie weiterhin wie eine Variable.

    Was TEMPLATE in deinem php-Kontext bringen soll erschließt sich mir nicht.

    Benny

    • Mitglied
    • Beiträge: 245
    Re: Template general.js.php und $CURRENT_TEMPLATE mit JavaScript
    Antwort #2 am: 13. Dezember 2011, 22:01:28
    Danke Matt. Die PHP-Definition "TEMPLATE" vereinfacht mir nur das arbeiten, da ich dort die Ordnerstruktur zusätzlich anpassen kann. Dies diente nur der näheren erläuterung.

    Eine feste Variable ist schon eine Möglichkeit. Nur müsste ich dieses für jedes Template setzen. Genau das möchte ich ja vermeiden.

    Vielleicht war meine Beschreibung zu kurz...

    Als Beispiel:

    Der gesuchte Pfad liegt unter "/templates/xtc5/img/". Wenn ich dies fest einstelle ist alles schick.
    Ändert sich das ganze Template oder wird umbenannt, läuft diese Varibale nicht so rund.

    Ich suche somit etwas für JavaScript was das "xtc5" also das aktuell angewählte Template ermittelt und mir nutzbar macht.

    Dazu eine Idee?

    p3e

    • Experte
    • Beiträge: 2.424
    Re: Template general.js.php und $CURRENT_TEMPLATE mit JavaScript
    Antwort #3 am: 13. Dezember 2011, 22:13:33
    Da JavaScript erst im Browser ausgeführt wird gibt es da nur zwei Möglichkeiten:

    1. Du übergibst die Templatevariable (CURRENT_TEMPLATE) per php in den JavaScript-Code wenn er vom Browser angefordert wird. Hier kann Dir passieren, dass das durch den Browsercache nicht immer aktuell ist. Ich denke, das meinte Matt.
    2. Du kannst per JavaScript das html auslesen. Das geht besonders einfach mit jQuery. So kannst Du die URL einer Grafik auslesen von der Du sicher bist, dass Sie im Templateverzeichnis liegt. Mit der url hast Du dann auch den Pfad den Du suchst.

    Der zweite Fall ist eher dann interessant, wenn Du zB. per JS eine Grafik austauschen willst. K.A. was Du wirklich vorhast.

    Benny

    • Mitglied
    • Beiträge: 245
    Re: Template general.js.php und $CURRENT_TEMPLATE mit JavaScript
    Antwort #4 am: 13. Dezember 2011, 22:19:44
    Hallo p3e,

    danke. Das hilft mir schonmal weiter und prompt ist mir mein Fehler aufgefallen.

    Zur Info:
    Ziel des Ganzen ist ein externes Modul so anzupassen, dass den Bildpfad automatisch ermittelt, da diese noch fest programmiert sind. Problem war, dass sich das Template ab und an ändert oder umbenannt wird.

    P.S.: Hier mein CodeBeispiel für die "general.js.php":

    Code: Javascript  [Auswählen]
    <script language="javascript">
    var CURRENT_TEMPLATE = "<?php echo CURRENT_TEMPLATE ?>";
    //document.write(CURRENT_TEMPLATE)
    </script>

    Dadurch war CURRENT_TEMPLATE in den eingebundenen Java-Scripten verfügbar und diente meinem Zweck. ;)

    p3e

    • Experte
    • Beiträge: 2.424
    Re: Template general.js.php und $CURRENT_TEMPLATE mit JavaScript
    Antwort #5 am: 13. Dezember 2011, 22:25:21
     :-? Irgendwie verstehe ich die Problematik immer noch nicht? Ist das externe Modul denn komplett in JavaScript geschrieben?

    Matt

    • Experte
    • Beiträge: 4.241
    Re: Template general.js.php und $CURRENT_TEMPLATE mit JavaScript
    Antwort #6 am: 13. Dezember 2011, 22:28:18
    [...] Ich denke, das meinte Matt.
    [...]

    Nee, der meinte schon, was er geschrieben hat. Eine definierte Konstante in php kann nicht mehr mit einem neuen Wert versehen werden. Ein solches Konzept existiert in Javascript einfach nicht.

    Die "general.js.php" läuft ja durch den Parser. Du kannst einfach folgendes machen:

    Code: Javascript  [Auswählen]
    var TEMPLATE = <?=TEMPLATE?>;

    Benny

    • Mitglied
    • Beiträge: 245
    Re: Template general.js.php und $CURRENT_TEMPLATE mit JavaScript
    Antwort #7 am: 13. Dezember 2011, 22:33:57
    :lol: Habe gerade meinen letzten Beitrag angepasst und beim Senden sehe ich den Beitrag von Matt. Genau so mein Plan. ;-)

    p3e

    • Experte
    • Beiträge: 2.424
    Re: Template general.js.php und $CURRENT_TEMPLATE mit JavaScript
    Antwort #8 am: 13. Dezember 2011, 22:35:01
    @Matt: Genau Deinen letzten Vorschlag meinte ich als ich schrieb:

    [...] Ich denke, das meinte Matt.
    [...]

    Ich meinte nicht den Browsercache, sondern die Übergabe an eine JS-Variabel per php.
    3 Antworten
    3654 Aufrufe
    16. August 2013, 09:16:23 von Angeal
    1 Antworten
    1825 Aufrufe
    22. November 2012, 15:52:13 von sorny
    3 Antworten
    2229 Aufrufe
    19. Januar 2017, 19:22:38 von awids
    1 Antworten
    2723 Aufrufe
    17. Februar 2014, 09:53:04 von Modulfux
               
    anything