sreifsteck
I'm new here

DomElement als HTML Entities ausgeben

Hallo,

ist es möglich ein CMS_INPUT_DOM Elements als HTML Entities auszugeben?

Der Hintergrund ist folgender, ich möchte in einer Bildbeschreibung einer Lightbox formatierten Text ermöglichen, dieser Text muss in ein data Attribut geschrieben werden.

Die einfache Ausgabe mit $CMS_VALUE(st_input_dom)$ ist deshalb nicht möglich, da so ungültiges HTML entsteht. Im Prinzip suche ich so etwas wie $CMS_VALUE(st_input_dom.convert2)$.

0 Kudos
4 Replies
feddersen
Community Manager

Im CMS_INPUT_DOM wird ja eine Formatvorlage für die Ausgabe verwendet. Bei der Formatvorlage können sie auswählen, welche Konvertierungsregel für die Formatvorlage angegewendet werden soll. Dort die passende auswählen, dann ist die Ausgabe bei Verwendung von $CMS_VALUE(st_input_dom)$ korrekt konvertiert.

0 Kudos

Die Konvertierungsregel führt leider nicht zu dem gewünschten Ergebnis. Die Regel ist in der Formatvorlage ausgewählt, die das CMS_INPUT_DOM ausgibt.

Der DOM Editor enthält z.B. folgendenden Text: "täst", dies führt zu dem HTML: "<p>täst</p>".

Bei der Ausgabe mit $CMS_VALUE()$ wird daraus "<p>t&auml;st</p>", ich hätte aber gerne folgende Ausgabe: "&lt;p&gt;t&auml;st&lt;/p&gt;".

In der Regel ist u.a. folgende Ersetzung enthalten: 0x3c="&lt;", wird die Regel in dieser Situation überhaupt angewand?

0 Kudos

Das wird wahrscheinlich daran liegen, dass die Ersetzung im "QUOTE" Teil der Konvertierungsregel definiert ist. Dieser Teil wird bei Formatvorlagen nur angewandt, wenn auf dem Eigenschaften-Reiter der Formatvorlage der Haken bei "Zitieren" gesetzt wird. Also entweder den Haken setzen oder eine zusätzliche Konvertierungsregel anlegen, die die Ersetzung im "CONVERT" Teil enthält.

Danke für die Hilfe, ich habe nun eine andere Lösung gefunden:

// Formatvorlage

$CMS_SET(subtitleTemplateDocument)$

     $CMS_VALUE(st_input_dom_subtitle)$

$CMS_END_SET$

$CMS_RENDER(script: "inter_convert_html", templateDocument: subtitleTemplateDocument)$

// Skript

import java.io.Writer;

import java.io.StringWriter;

import org.apache.commons.lang.StringEscapeUtils;

StringWriter tmpWriter = new StringWriter();

Writer oldWriter = context.getOut();

context.setOut(tmpWriter);

context.print(templateDocument);

String escapedHtml = StringEscapeUtils.escapeHtml(tmpWriter.toString());

context.setOut(oldWriter);

context.print(escapedHtml);

0 Kudos