rechtstexte für onlineshop
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: Platzhalter für Sprachdefiniton in Javascript eingebunden in html

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    Hallo,

    bin wieder mal an einem Spezialthema.

    In den html Dateien sind ja die Sprachkonstanten mit smary in der lang_xxx.conf definiert. Eingebunden mit {#text_blablabla#}

    In den php Dateien in den mit echo BLABLABLA und in den zugehörigen Sprachdateien definiert.

    Wie kann ich nun diese Sprachdefinitionen auch in der index.html des Templates in Javascript verwenden?

    Beispielzeile aus dem Codeteil zwischen <script type="text/javascript"> und </script>
    Code: PHP  [Auswählen]
    togglehtml: ["suffix", "anmelden", "schlie&szlig;en"],

    Egal ob smarty oder php Variante, mit und ohne literal, es klappt nicht. Geht es überhaupt? Wenn ja, wie?

    Danke

    Gerd

    Linkback: https://www.modified-shop.org/forum/index.php?topic=23566.0
    Modulshop - Eine große Auswahl an neuen und hilfreichen Modulen für die modified eCommerce Shopsoftware

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.989
    • Geschlecht:
    Hallo Gradler.
    Am besten geht das mit Sprachkonstanten aus den SPRACHE.php -Dateien.
    Ein Code sähe dann z.B. so aus:
    Code: Javascript  [Auswählen]
    togglehtml:    '<?php echo SPRACH_KONSTANTE; ?>'
    muß aber dann in einer PHP-Datei stehen wie die general.js.php oder die header.php.

    Da man ja am besten "unobtrusive" Javascript benutzen sollte und Javascript auch "conditional" laden kann, also nur auf bestimmten Seiten, ist das ja auch kein Problem.

    Ansonsten muß es auch mit "literal" und den Platzhaltern aus den SPRACHE.conf -Dateien gehen.
    Das "literal" muß dann immer an den Stellen unterbrochen werden wo php-geparst werden soll,
    also z.B. so:
    Code: Javascript  [Auswählen]
    {literal}togglehtml: [{/literal}{#SPRACH_PLATZHALTER#}{literal}, {/literal}{#SPRACH_PLATZHALTER#}{literal}, {/literal}{#SPRACH_PLATZHALTER#}{literal} //...]

    Man ahnt schon, daß es das nicht bringt weil man vor lauter "literal" gar nicht mehr durchblickt und es auch nicht sonderlich performant sein dürfte.
    Die erste Variante ist daher vorzuziehen.

    Gruß,
    noRiddle

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    Danke noRiddle,

    das mit literal hat jetzt doch funktioniert - allerdings, da bereits geöffnet, in umgekehrter Form.

    Gerd

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.989
    • Geschlecht:
    Ich hab's ja auch übertrieben, (wurde darauf hingewiesen  :oops: ;-)),
    das "literal" verhindert lediglich, daß geschweifte Klammern im Javascript von der Smarty-Engine gelesen werden, es reicht also die "literal" nur da zu verwenden wo im Javascript geschwungene Klammern verwendet werden.

    Ich selbst bette immer alles Javascript in Template-Dateien in "literal" ein, auch da wo nicht nötig, weil es übersichtlicher ist.
    Die bessere Variante ist aber jedenfalls meine oben gepostete 1. Variante.

    Gruß,
    noRiddle

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    So hat halt jeder seine "Eigenart" - mit Smarty ist mir in den html Dateien die zweite Variante (literal) lieber. Vielleicht hast Du zu meinen anderen ultranichtganzsoabsolutwichtigen Spezialproblemen auch eine Lösung?

    Gerd
    Trade Republic - Provisionsfrei Aktien handeln
    3 Antworten
    2227 Aufrufe
    19. Januar 2017, 19:22:38 von awids
    3 Antworten
    4497 Aufrufe
    26. Februar 2014, 11:45:16 von Matt
    7 Antworten
    4383 Aufrufe
    01. Januar 2011, 13:30:48 von Shorty