- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
convertEntities funktioniert nicht in Datenquellen/Tabellenvorlagen
Guten Tag,
wir haben festgestellt, dass die Funktion convertEntities in unserer FS-Version nicht innerhalb von Datenquellen funktioniert. Dort werden konvertierte Entitรคten nicht abgespeichert, sondern die ursprรผnglichen Sonderzeichen werden ausgegeben. In normalen Absรคtzen hingegen funktioniert das Konvertieren einwandfrei. Das Verhalten ist im Internet Explorer 8 und im Firefox 3.6 identisch.
Auszug aus dem Formular einer Tabellenvorlage, in der es nicht funktioniert:
<CMS_INPUT_TEXT name="st_bezeichnung" convertEntities="quote" maxInputLength="200">
<LANGINFOS>
<LANGINFO lang="EN" label="Further name" description="Please enter a further name"/>
<LANGINFO lang="*" label="Weitere Bezeichnung" description="Bitte geben Sie eine weitere Bezeichnung ein"/>
</LANGINFOS>
</CMS_INPUT_TEXT>
Auszug aus einem Formular einer Absatzvorlage, in der es funkioniert (selbes Projekt):
<CMS_INPUT_TEXT name="st_subline" convertEntities="quote" useLanguages="yes">
<LANGINFOS>
<LANGINFO lang="*" label="รberschrift" description="รberschrift"/>
<LANGINFO lang="EN" label="Headline" description="Headline"/>
</LANGINFOS>
</CMS_INPUT_TEXT>
Unsere Konvertierungsregel sieht wie folgt aus:
[quote]
0x3c="<"
0x3e=">"
0x26="&"
0x24="$"
0x25="%"
JDBC Parameter der Datenbankverbindung, die fรผr die Datenquellen verwendet wird:
# fs_db
jdbc.DRIVER=oracle.jdbc.OracleDriver
jdbc.PASSWORD=********
jdbc.POOLCYCLE=60
jdbc.POOLMAX=1
jdbc.POOLMIN=1
jdbc.POOLTIMEOUT=180
jdbc.URL=jdbc:oracle:thin:@FSORACLE:1521:FSDEV
jdbc.USER=********
jdbc.layerclass=de.espirit.or.impl.oracle.OracleLayer
jdbc.oracle.TABLESPACES=********
FS-Version (Client/Server): 4.2.454.47212
Das HTML-Encoding ist fรผr alle Sprachen im Projekt auf UTF-8 eingestellt.
Handelt es sich hierbei um einen Bug, oder gibt es hierfรผr eine Konfigurationsmรถglichkeit, die wir noch nicht entdeckt haben? Falls es ein Bug ist: Ist dieser in einer spรคteren Version bereits behoben? Vielen Dank fรผr eure Hilfe im Voraus.
LG
Renรฉ
- Labels:
-
Developers
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Renรฉ,
ich rate mal und nehme an, dass die Ausgabe der Datenbankinhalte nicht diekt รผber die Variable erfolgt sondern entweder รผber das #row Objekt oder eine Fremdschlรผsselbeziehung oder eine contentSelect Funktion.
In all diesen Fรคllen steht die Definition der Eingabekomponente nicht zur Verfรผgung und somit "weiss" das System nicht, dass die Inhalte konvertiert werden sollen.
Lรถsung ist entweder die Ausgabe รผber die Eingabekomponente (also anstelle von z.B. $CMS_VALUE(#row.bezeichnung)$ $CMS_VALUE(st_bezeichnung)$ in der Tabellenvorlage) oder besser direkt die Konvertierung mittels convert[2] durchzufรผhren, also anstelle von $CMS_VALUE(#row.bezeichnung)$ $CMS_VALUE(#row.bezeichnung.convert)$ oder $CMS_VALUE(#row.bezeichnung.convert2)$ benutzen.
Bei der Verwendung von convert[2] sollte dann aber auf convertEntities bei der Definition der Eingabekomponente verzichtet werden, da ansonsten die Gefahr gesteht, doppelt zu konvertieren.
Viele Grรผsse aus Dortmund,
Holger
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Holger,
danke fรผr die super Lรถsung. Funktioniert einwandfrei.
Viele Grรผรe,
Dominic
@Rene: Du kannst die Diskussion gerne als Beantwortet markieren.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Holger,
danke fรผr die Hilfe. Eine Anmerkung habe ich hierzu noch:
Zumindest in unserer FS-Version funktioniert die Konvertierung auch dann NICHT, wenn wir รผber $CMS_VALUE(st_xyz)$ im Ausgabekanal der Tabellenvorlage direkt auf die Eingabekomponente zugreifen.
Holger Hรถbbel schrieb:
Bei der Verwendung von convert[2] sollte dann aber auf convertEntities bei der Definition der Eingabekomponente verzichtet werden, da ansonsten die Gefahr gesteht, doppelt zu konvertieren.
Das verstehe ich nicht. Wenn wir mittels convert[2] an den Stellen, an denen der convertEntities-Wert nicht ausgewertet wird, ein Workaround schaffen, wie kann es dann zu doppelter Konvertierung kommen? Auรerdem noch die Frage: Welcher Regelsatz wird bei convert[2] verwendet?
LG
Renรฉ
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Renรฉ,
> Auรerdem noch die Frage: Welcher Regelsatz wird bei convert[2] verwendet?
convert[2] sind zwei Methoden. Bei beiden Methoden wird der Standardregelsatz fรผr den entsprechenden Ausgabekanal benutzt (ebenso wie bei convertEntities in der GUI Definition)
.convert entspricht convertEntities="STANDARD"
.convert2 entspricht convertEntities="QUOTE"
> Wenn wir mittels convert[2] an den Stellen, an denen der convertEntities-Wert nicht ausgewertet wird, ein Workaround schaffen, wie kann es dann zu doppelter Konvertierung kommen?
Wenn Ihr sowohl รผber die Eingabekomponente konvertiert als auch spรคter รผber die Methode .convert und beispielsweise bei beiden Konvertierungen & -> & a m p ; wird, dann wรผrde diese Regel zweimal angewendet und aus & wรผrde & a m p; a m p ;
Viele Grรผsse aus Dortmund,
Holger

