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: Sprachdateien für neues Template

    sixtyseven

    • Fördermitglied
    • Beiträge: 107
    • Geschlecht:
    Sprachdateien für neues Template
    am: 25. Juni 2014, 11:19:49
    Hallo zusammen,

    ich würde gerne in einem Template eigene Sprachvariablen laden. Dies sollte ja problemlos über config_load möglich sein. Um dem User des Templates die Sache aber zu erleichtern, würde ich diese config datei am liebsten aus dem Template-Verzeichnis selbst laden, also z.B. templates/mein_template/lang/german/lang_german.conf. So erspare ich dem Benutzer das Kopieren oder Ergänzen der Datei im core. Ist das überhaupt möglich, und wenn ja, wie könnte ich das bewerkstelligen?

    In diesem Zusammenhang: Lässt sich auch überprüfen, ob eine Sprachvariable aus einer .conf Datei existiert bzw. kein Leerstring ist? Ich würde gerne einen Bereich im Footer nur dann anzeigen, wenn besagte Variable (egal von wo geladen  :-D) != "" ist.

    Danke vorab für jede Hilfe ;-)

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

    Gradler

    • Viel Schreiber
    • Beiträge: 2.083
    • Geschlecht:
    Re: Sprachdateien für neues Template
    Antwort #1 am: 25. Juni 2014, 11:31:51
    Schau mal bei Gunnart nach, der praktiziert das schon seit vielen Jahren und hat eine Anleitung dazu.

    sixtyseven

    • Fördermitglied
    • Beiträge: 107
    • Geschlecht:
    Re: Sprachdateien für neues Template
    Antwort #2 am: 25. Juni 2014, 12:30:56
    Vielen Dank, Gradler. An Konstanten hatte ich gar nicht gedacht ;-)

    Für alle, die es interessiert. Hier geht's zur Anleitung

    Und für das Problem "Ist die Konstante definiert?" habe ich hier eine Lösung gefunden

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Sprachdateien für neues Template
    Antwort #3 am: 25. Juni 2014, 13:46:02
    Hallo sixtyseven

    Zitat
    ich würde gerne in einem Template eigene Sprachvariablen laden. Dies sollte ja problemlos über config_load möglich sein. Um dem User des Templates die Sache aber zu erleichtern, würde ich diese config datei am liebsten aus dem Template-Verzeichnis selbst laden, also z.B. templates/mein_template/lang/german/lang_german.conf. So erspare ich dem Benutzer das Kopieren oder Ergänzen der Datei im core. Ist das überhaupt möglich, und wenn ja, wie könnte ich das bewerkstelligen?

    Also in deinen Template-Dateien findest Du immer ganz am Anfang eine Zeile die etwa so aussieht wie die Folgende Zeile aus der templates/mein_template/index.html

    Code: XML  [Auswählen]
    {config_load file="$language/lang_$language.conf" section="index"}

    diese Zeile kannst Du wie folgt ändern

    Code: XML  [Auswählen]
    {config_load file="../templates/mein_template/$language/lang_$language.conf" section="index"}

    also Du fügst einfach folgendes hinzu.

    Code: XML  [Auswählen]
    ../templates/mein_template/

    Voraussetzung ist natürlich die "lang_$language.conf" liegt am richtigen Ort.

    Zitat
    In diesem Zusammenhang: Lässt sich auch überprüfen, ob eine Sprachvariable aus einer .conf Datei existiert bzw. kein Leerstring ist? Ich würde gerne einen Bereich im Footer nur dann anzeigen, wenn besagte Variable (egal von wo geladen  :-D) != "" ist.

    Ja das geht.

    Hier zwei Beispiele:

    Code: XML  [Auswählen]
    {if #meine_variable#}{#meine_variable#}{/if}

    {if #meine_variable#}Ja die Sprach-Variable ist vorhanden und nicht leer{else}Nein die Sprach-Variable ist nicht vorhanden oder leer{/if}

    Gruss
    Hanspeter

    sixtyseven

    • Fördermitglied
    • Beiträge: 107
    • Geschlecht:
    Re: Sprachdateien für neues Template
    Antwort #4 am: 25. Juni 2014, 14:47:16
    Hallo Hanspeter,

    vielen Dank für deine Mühe. Ich dachte mir schon so etwas in der Art, es war {$tpl_path}, welches mir die Probleme bereitete.

    Ich habe mich nun aber doch für die Lösung von gunnART entschieden, da ich hierbei auch seinen in der Anleitung genannten schönen Smarty modifier verwenden kann. Es ist ja in der Smary-Klasse schon von Haus aus das Verzeichnis templates/dein_template/smarty als zusätzliches Plugin-Verzeichnis definiert ;-)

    So habe ich es gemacht:

    Im Verzeichnis source habe ich in der Datei boxes.php ganz am Ende dies hier eingefügt:
    Code: PHP  [Auswählen]
    //-----------------------------------------------------------------------------------------
    // Zusätzliche Sprachvariablen des Templates
    // -----------------------------------------------------------------------------------------
    define('DIR_FS_TEMPLATELANG',DIR_FS_CATALOG .'templates/'.CURRENT_TEMPLATE. '/lang/');
    define('TEMPLATELANGFILE',DIR_FS_TEMPLATELANG . $_SESSION['language'] . '/template_lang.php');
    if(file_exists(TEMPLATELANGFILE)) require(TEMPLATELANGFILE);
     

    Unter Verwendung des angesprochenen Modifiers sind dann innerhalb des Templates z.B. folgende Konstrukte möglich:
    Code: PHP  [Auswählen]
    define('MYCONSTANT_TEST','Ich bin eine Testkonstante');
    define('MYCONSTANT_TEST2','Sie haben %num% %num:no=Adressen% %num:one=Adresse% %num:more=Adressen% in Ihrem Adressbuch');
     

    Code: XML  [Auswählen]
    {$smarty.const.MYCONSTANT_TEST}
    {show text=MYCONSTANT_TEST}

    {if "MYCONSTANT_TEST2"|defined}
       {php}
        $this->assign('zahl',1);
        {/php}
        {show text=MYCONSTANT_TEST2 num=$zahl}
    {/if}
     

    Ich bedanke mich bei allen, die mich auf die richtige Spur gebracht haben, recht herzlich!
    Managed Server
    6 Antworten
    4480 Aufrufe
    15. Juli 2009, 16:29:17 von vsell
    6 Antworten
    2476 Aufrufe
    23. September 2016, 16:53:09 von Bonsai
    21 Antworten
    13271 Aufrufe
    09. Dezember 2012, 18:50:56 von gmbb
    2 Antworten
    1885 Aufrufe
    08. Juli 2015, 16:23:04 von Godzilla