Textbausteine mit Hochkommatas korrekt einbinden

29. Mai 2012

Beachten Sie beim Einbinden von Texten, die über PHP eingebunden werden, ob einfache oder doppelte Hochkommatas enthalten sind.

Beim Einbinden von Texten (z.B. über Textbausteine) gelten auch in Weblication® CMS zum Einlesen in PHP die üblichen Regeln.

Wenn Sie einen Text einlesen, der ein einfaches Hochkommata beinhaltet, muss dies im PHP-Code entsprechend maskiert werden.

Im folgenden Beispiel soll das Wort "Uhrzeit" im englischen Bereich als "o'clock" definiert und ausgegeben werden, weshalb dies so in der Textbaustein-Datei hinterlegt wird.

Beispiel: Textbaustein-Datei des englischsprachigen Bereiches (z.B. /en/wGlobal/content/texts/default.wTexts.php

<?php $version="1.0"; $encoding="UTF-8"; ?>
<?php exit; ?>
<wTexts version="5.0">
  ...
  <text key="o_clock">o'clock</text>
  ...
</wTexts>

Beim Einbinden des Textbausteines über ein XSL-Template (z.B. standard.wDocument.php) ist grundsätzlich nichts zu beachten. Sofern der Text allerdings über ein PHP-Skript eingebunden wird, müssen Hochkommatas entsprechend maskiert werden!

Beispiel 1: Fehlerhaftes Einbinden des Textes zum oben genannten Textbaustein

<wsl:php>
  $oclock = '<xsl:value-of select="php:functionString('wTexts::getText', 'o_clock')"/>';
  print 'Aktuelle Uhrzeit: '.date("H:i").' '.$oclock;
  // -> generiert einen Fehler, da das einfache Hochkommata nicht maskiert wird!
</wsl:php>

Beispiel 2: Korrektes Einbinden des Textes zum oben genannten Textbaustein

<wsl:php>
  $oclock = '<xsl:value-of select="php:functionString('wStringconverter::maskApos', php:functionString('wTexts::getText', 'o_clock'))"/>';
  print 'Aktuelle Uhrzeit: '.date("H:i").' '.$oclock;
</wsl:php>

Bei doppelten Anführungszeichen (Quotes) steht Ihnen auch einen PHP-Framework Funktion zur Verfügung.

Entwicklerbereich Weblication® CMS - © Scholl Communications AG