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&uuml;tzt
...


Tut fixtext 1.png


[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&uuml;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:


Tut fixtext 2.png Tut fixtext 3.png


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

           
anything