So ersetzen Sie Text-Platzhalter durch die gewünschten Texte

Nutzbar ab: Version

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>
...