Tutorial: Einfügen eines fixen Textes in ein Template, sprachabhängig
Eine typische Problemstellung bei der Bearbeitung eines Templates ist das Einfügen von Textpassagen.
Fixe Texte einsprachig[Bearbeiten]
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 ...
Fixe Texte mehrsprachig[Bearbeiten]
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