- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
convertEntities funktioniert nicht in FS_LIST
Hallo Zusammen.
Habe wohl einen Bug gefunden.
Ich verwende convertEntities="quote" bei jedem CMS_INPUT_TEXT. Es funktioniert auch wurderbar, allerdings nur bei Elementen die nicht in einer FS_LIST sind. Die in der FS_LIST bekomme ich nur konvertiert, wenn ich bei der Ausgabe noch convert2() aufrufe.
Ist das ein Bug oder hat das schonmal jemand beobachtet und evtl. gehabt und behoben?
Viele Grรผรe,
Daniel Philippi
- Labels:
-
Developers
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
convertEntities ist der Legacyweg aus 3.1er Zeiten. Der convert2()-Aufruf im Template ist hier genau der Weg der Wahl.
Das Attrbiute wird hier fรคlschlicherweise als unterstuetz angezeigt. Das wird nun entsprechend angepasst. Danke fuer die Meldung
InterneID: #101695
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Gerne.
Nun ist es so, dass ich alle CMS_INPUT_TEXT Eingebeelemente auf convertEntities="quote" umgestellt habe, da dies fรผr mich die elegantere Art war. So ist der Fehler erst rausgekommen.
Muss/sollte ich diese nun alle auf .convert2() umbauen, damit ich mit spรคteren Versionen von FirstSpirit kompatibel bleibe oder ist sichergestellt, dass dort wo es aktuell funktioniert auch weiterhin funktionieren wird?
Viele Grรผรe,
Daniel Philippi
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo,
blรถde Frage: wenn das nicht schon 2011 mehr unterstรผtzt wurde, warum ist es in 5.0 immer noch drin??? Ich bin grad รผber den gleichen Fehler gestolpert und auch bei mir funktioniert es nicht in Linktemplates.
Auรerdem habe ich ein neueres Thema gefunden, in dem dieser Effekt als "internal issue" bezeichnet wird: https://community.e-spirit.com/message/14013#14013
Was gilt denn jetzt?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Wo genau ist es "noch drin"? Hier geht es ausschlieรlich um "FS_LIST". In dem von dir verlinktem Posting geht es um (Text-)Felder innerhalb von Links.
[EDIT]
Das im referenzierten Posting angesprochene Problem ist seit 5.0R4 behoben.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ok, sorry! Ich dachte, es geht um die Felder innerhalb von FS_LIST, also z.B. auch Linkvorlagen.
zum [EDIT]: ich habe eine 5.0.425 und da wird z.B. ein convertEntities="quote" an einem Textfeld richtig ersetzt, wenn das CMS_INPUT_TEXT sich in einer Seitenvorlage befindet, aber nicht, wenn es in einer Linkvorlage ist (die รผber FS_LIST eingebunden ist).
Ich kann das aber gerne in dem anderen Thread weiter diskutieren, wenn das hier nicht hin gehรถrt.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Noch ein Hinweis: Es stimmt, das mittlerweile รผblicherweise bei der Ausgabe ".convert" bzw ".convert2" benutzt wird. Das hat den Hintergrund, das man so feingranularer steuern kann, wo Zeichen wie ersetzt werden. Trotzdem sollte das Attribut "convertEntities" an den Eingabekomponenten funktionieren. Wenn es das nicht tut, sollte das behoben werden. Wobei der beste Weg ist, sowas รผber den Helpdesk als Ticket laufen zu lassen.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Okay, danke trotzdem fรผr die Hilfe. Ich habe grad noch rausgefunden, dass es in Linkvorlagen funktioniert, wenn direkt aus der Linkvorlage auf das Textelement zugegriffen wird, aber nicht, wenn diese z.B. in einer anderen Vorlage รผber eine Schleife lรคuft und die einzelnen Linkattribute in dieser Form geholt werden: $CMS_VALUE(forLink.lt_text)$
Ich werde mich damit ans Helpdesk wenden.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Das "convertEntities" wirkt sich nur auf den gemappten Wert in der Vorlage aus (also $CMS_VALUE(attribut-Name)$). Wenn direkt auf das Feld zugegriffen wird wie in deinem Beispiel, arbeitet man mit dem "rohem" Wert. Das mรผsste auch so dokumentiert sein. Vielleicht kann man das aber noch mal klarer formulieren, um weitere Missverstรคndnisse zu vermeiden.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo,
Ergรคnzend dazu noch ein paar Grรผnde warum man die Konvertierung besser in der Ausgabe (und dort auch erst "ganz am Schluss") macht:
Ein (zugegebenermaรen wohl eher seltener) Anwendungsfall kam mir letztens in einem Projekt unter: Dort hat man sich nachtrรคglich entschieden, dass externe Links รผber eine Absprungseite geleitet werden sollten, die den "Namen" der Seite (quasi den Link-Text) als URL-Parameter bekommt und dann mit JS einen entsprechenden "Weiter"-Button baute. Hierzu musste aber der Original-String URL-encoded werden (was etwas ganz anderes ist). D.h. hier musste dann convertEntities ausgeschaltet werden und es waren einige Template-Anpassungen notwendig. Das lรคsst sich aber natรผrlich verallgemeinern auf รคhnliche Fรคlle.
Generell fรผhrt die Formular-Konvertierung bei der Weiterverarbeitung von Werten z.B. in Rendertemplates potenziell zu Problemen: Hier will man meistens den "Original-String" haben und nicht den schon konvertierten.
Hinzu kommt, dass an einigen Stellen keine Konvertierung geschehen kann, z.B. wenn man Texte in Tabellenvorlagen mit #row.text ausgibt oder auch รผber ein ContentSelect.
Das fรผhrt zu dem grundsรคtzlichen Problem, dass man (bei der Verwendung von convertEntities) an einigen Stellen mit konvertierten und an anderen mit unkonvertierten Texten arbeitet bzw. arbeiten muss und hier den รberblick behalten muss. Gerade bei der Verwendung von Rendertemplates / Scripten ist es dann unnรถtig komplex und fehleranfรคllig, immer nachzuvollziehen wo / ob ein konvertierter und wo ein unkonvertierter Text vorliegt.
Vergessene / doppelte Konvertierungen fallen auch selten sofort auf, weil sie ja immer erst auftreten wenn ein Redakteur in den entsprechenden Komponenten einen Text eingibt, der durch die Konvertierung verรคndert wird.
Meine Empfehlung ist hier immer, solange wie mรถglich mit den Original-Strings zu arbeiten, d.h. in Formularen kein convertEntities zu nutzen, auch keine รbergabe von konvertierten Strings an Rendertemplates oder Scripte usw. Die Konvertierung sollte immer erst "ganz am Ende" - also dort wo der String wirklich ausgegeben wird mit convert / convert2 geschehen. Diese Variante kann nรคmlich konsequent einheitlich umgesetzt werden.
Viele Grรผรe
Michael

