Tutorial: Einfügen eines fixen Textes in ein Template, sprachabhängig
Aus Wiki | xtcModified eCommerce Shopsoftware
Eine typische Problemstellung bei der Bearbeitung eines Templates ist das Einfügen von Textpassagen.
[Bearbeiten] Fixe Texte einsprachig
In Shops die definitiv einsprachig betrieben werden ist es einfach. Man fügt den Klartext an die entsprechende Stelle im Template ein.
Hier ein Beispiel der Seite des Newsletters:
templates/xtc5/module/newsletter.html
{config_load file="$language/lang_$language.conf" section="newsletter"}
<h1>{#heading_title#}</h1>
Dieses Formular ist mit einem Sicherheitscode gegen Spam geschützt
...
[Bearbeiten] Fixe Texte mehrsprachig
Wird der Shop mehrsprachig betrieben muß der Text entspr. in mehreren Sprachen abgelegt werden. Dies geschieht in den Sprachdateien des Ordners "lang/". Darin Unterordner der Sprachen. Innerhalb des Ordners gibt es, neben einigen Bilddateien, 2 Arten Sprachdateien:
1. php-Dateien (Texte die Programmcode gebraucht werden)
2. conf-Datei (Texte die nur im Template verwendung finden)
Für den fixen Text benötigen wir die conf-Datei:
lang/german/lang_german.conf
Diese enthält Definitionen im Schema:
name = klartext name2 = klartext2 name3 = klartext3
Da die Liste sehr lang ist, ist sie in Abschnitte unterteilt, genannt Sektionen:
[sektion1] name = klartext name2 = klartext2 name3 = klartext3 [sektion2] name4 = klartext4 name5 = klartext5 name6 = klartext6
Um unseren Text zu platzieren müssen wir die passende Sektion finden. Dazu sehen wir in den Kopf des Templates:
templates/xtc5/module/newsletter.html
{config_load file="$language/lang_$language.conf" section="newsletter"}
...
Darin der Parameter: section="newsletter"
Jetzt suchen wir in der lang_german.conf die Sektion [newsletter] und erweiteren sie um einen frei definierten Eintrag. In diesem Beispiel "text_captchainfo".
lang/german/lang_german.conf
[newsletter] heading_title = 'Newsletter' heading_text = 'Unser Newsletter' text_email = 'Ihre E-Mail-Adresse' text_in = 'eintragen' text_out = 'austragen' text_sec_code = 'Sicherheitscode' text_inp_code = 'Hier eingeben' text_captchainfo = 'Dieses Formular ist mit einem Sicherheitscode gegen Spam geschützt.'
Dies wiederholen wir in den conf-Dateien aller Sprachen.
lang/english/lang_english.conf
[newsletter] heading_title = 'Newsletter' heading_text = 'Our newsletter' text_email = 'Your e-mail address' text_in = 'subscribe to our newsletter' text_out = 'cancel newsletter subscription' text_sec_code = 'Security code' text_inp_code = 'Enter here' text_captchainfo = 'This form is protected by captcha.'
ggf. weitere Sprachen
Nun muß im Template an gewünschter Stelle der entsprechende Platzhalter eingefügt werden. Er sieht folgendermaßen aus:
{#text_captchainfo#}
Entsprechend im Template:
templates/xtc5/module/newsletter.html
{config_load file="$language/lang_$language.conf" section="newsletter"}
<h1>{#heading_title#}</h1>
{#text_captchainfo#}
...
Das Ergebnis:
Ist in einem Template keine Sektion ("section=???") angegeben ist die Einfügung in der conf-Datei am Beginn der Datei vorzunehmen, im sektionslosen Bereich. Ebenso wenn ein neuer Text durchweg in allen Templates gültig sein soll, unabhängig von einer Sektion.
11.2011 h.koch




