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.
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".
... <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> ...
... <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> ...
... <?php $version="1.0"; $encoding="UTF-8"; ?> <?php exit; ?> <wTexts version="5.0"> ... <text key="item_fliesstext">Fliesstext</text> ... </wTexts> ...
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 ..."
... <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> ...
... <?php $version="1.0"; $encoding="UTF-8"; ?> <?php exit; ?> <wTexts version="5.0"> ... <text key="t_grid">Weblication® CMS Grid 5.x</text> ... </wTexts> ...