So ersetzen Sie Text-Platzhalter durch die gewünschten Texte
15. Februar 2011
text platzhalter replace ersetzen textbaustein
Dieser Artikel beschreibt, wie Sie Textplatzhalter einsetzen können und zeigt diverse Einsatzmöglichkeiten auf.
Erleichtern Sie sich die Arbeit mit (Sprach-)Texten durch den Einsatz von Text-Platzhaltern. Das WSL-Tag "replaceTexts" ersetzt Ihnen innerhalb des eingelesenen Inhaltes die Text-Platzhalter durch die Texte aus den angegebenen Textbausteinen.
Nachfolgend ein paar Anwendungsbeispiele, die das veranschaulichen.
Beispiel 1: Benennung der Strukturelemente in Textbausteinen auslagern
Um den Namen eines Mastertemplate-Elementes bei mehrsprachigen Projekten global abzulegen, greifen Sie für den Wert des name-Attributes auf Textbausteine zu.
Hierzu umschliessen Sie das WSL-Tag zum Includieren der Mastertemplate-Elemente mit dem WSL-Tag zum Ersetzen von Text-Platzhaltern. Im path-Attribut geben Sie den Pfad zur Text-Datei an, die die Textbausteine enthält.
Innerhalb einer entsprechenden Mastertemplate-Elemente-Datei (z.B.: text.wysiwyg.wItemMastertemplate.php) tragen Sie als Wert des name-Attributes den Text-Platzhalter ein. Zur Definition des Text-Platzhalters lesen Sie bitte die WSL-Tagreferenz zu "replaceTexts".
Beispiel: Auszug aus standard.wMastertemplate.php mit Ersetzen von Text-Platzhaltern
... <wslMastertemplate:replaceTexts path="/[IHR-LAYOUT-PROJEKT]/wGlobal/content/texts/de.editor.wTexts.php"> <wslMastertemplate:templatesIncludeGroupItemsProject project="/[IHR-LAYOUT-PROJEKT]" orderBy="/wd:extension/wd:meta/wd:sorting/@value"/> </wslMastertemplate:replaceTexts> ...
Beispiel: Auszug aus text.wysiwyg.wItemMastertemplate.php mit Text-Platzhalter
... <wd:item name="TEXT[item_fliesstext]" en:name="TEXT[item_fliesstext]" icon="/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/images/element-icons/element_text.gif" type="text.wysiwyg"> <wd:fragment id="title" type="char.text"/> <wd:fragment id="display" type="char.display"/> <wd:fragment id="text" type="text.standard"><![CDATA[<p>Lorem ipsum ...</p>]]></wd:fragment> </wd:item> ...
Beispiel: Auszug aus de.editor.wTexts.php aus dem globalen Projekt
... <?php $version="1.0"; $encoding="UTF-8"; ?> <?php exit; ?> <wTexts version="5.0"> ... <text key="item_fliesstext">Fliesstext</text> ... </wTexts> ...
Beispiel 2: Text-Platzhalter in Textfeldern ersetzen
Um häufig verwendete Texte in Textfeldern nicht jedes Mal erneut eingeben zu müssen, können Sie ebenso auf das WSL-Tag "replaceTexts" zurückgreifen.
Das folgende Beispiel zeigt Ihnen, wie Sie für Textfelder einen Platzhalter in der Ausgabe ersetzen lassen können. Geben Sie z.B. ".... das neue TEXT[t_grid] setzt neue Maßstäbe ..." im Textfeld ein, so wird dies in der Ausgabe entsprechend umgesetzt:
"... das neue Weblication® CMS Grid 5.x setzt neue Maßstäbe ..."
Beispiel: Auszug aus text.wysiwyg.wItem.php mit Ersetzen von Text-Platzhaltern
... <xsl:template match="wd:item[@type = 'text.wysiwyg']"> <xsl:choose> <xsl:when test="$wIsInEditor and @wEditorId"> <!-- web:item:start name="Fliesstext" display="user" pathEditMastertemplate="/[IHR-LAYOUT-PROJEKT]/wGlobal/mastertemplates/items/text.wysiwyg.wItemMastertemplate.php" pathEditXslt="/[IHR-LAYOUT-PROJEKT]/wGlobal/layout/templates/items/text.wysiwyg.wItem.php" type="text.wysiwyg"--> <div class="elementText"> <xsl:variable name="openClipboardDialogOnPaste"><xsl:choose><xsl:when test="php:functionString('wVariables::getValue', 'open_clipboard_dialog_on_paste', '/spinGlobal') = 'yes'">1</xsl:when><xsl:otherwise>0</xsl:otherwise></xsl:choose></xsl:variable> <!--web:text:start openClipboardDialogOnPaste="<xsl:value-of select="$openClipboardDialogOnPaste" />" pasteFilter="deleteFontFormatsOnly" autoFilter="deleteStyleAttributes" wysiwygFunctions="" editor="wysiwyg" inputStyle=""--><xsl:value-of disable-output-escaping="yes" select="wd:fragment[@id = 'text']"/><!--web:text:stop--> </div> <!-- web:item:stop --> </xsl:when> <xsl:otherwise> <div class="elementText"> <wsl:replaceTexts path="/[IHR-LAYOUT-PROJEKT]/wGlobal/content/texts/de.wTexts.php"><xsl:value-of disable-output-escaping="yes" select="wd:fragment[@id = 'text']"/></wsl:replaceTexts> </div> </xsl:otherwise> </xsl:choose> </xsl:template> ...
Beispiel: Auszug aus de.wTexts.php aus dem globalen Projekt
... <?php $version="1.0"; $encoding="UTF-8"; ?> <?php exit; ?> <wTexts version="5.0"> ... <text key="t_grid">Weblication® CMS Grid 5.x</text> ... </wTexts> ...