Questions & Answers

renet
I'm new here

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="&lt;"

0x3e="&gt;"

0x26="&amp;"

0x24="&#36;"

0x25="&#37;"

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รฉ

4 Replies
hoebbel
Crownpeak employee

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

graulich
I'm new here

Hallo Holger,

danke fรผr die super Lรถsung. Funktioniert einwandfrei.

Viele GrรผรŸe,

Dominic

@Rene: Du kannst die Diskussion gerne als Beantwortet markieren.

0 Kudos

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รฉ

0 Kudos
hoebbel
Crownpeak employee

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

0 Kudos

Type a product name