Map.toJSON und Probleme mit Hochkomma
Author: STrojette
Publication Date: 4/9/2020 12:09
Hallo zusammen!
Wir haben brand-aktuell das Problem, dass die Methode map.toJSON keine Hochkomma escaped und uns dadurch das generierte Json um die Ohren fliegt.
Hat jemand eine Idee woran das liegen kann oder wie wir das programmatisch verhindern können?
Wir sind für jede Hilfe dankbar.
-
Author: sense - 4/9/2020 12:16
Kannst Du mal ein Beispiel posten wo es fehlschlägt + FS Version?
0 -
Author: STrojette - 4/9/2020 13:06
Hey Sven, danke für die schnelle Antwort.
FS 5.2.1908
Unser Code (Auszug):
--$$CMS_SET(array,[])$$--
...
--$$CMS_SET(pictureMap,{:})$$--
--$$CMS_SET(set_picture)$$--
--$$CMS_REF(media: "ph1110x833")$$--
--$$CMS_END_SET$$--
--$$CMS_SET(set_picture_thumbnail)$$--
--$$CMS_REF(media: "ph1110x833")$$--
--$$CMS_END_SET$$--
--$$CMS_SET(void,pictureMap.put("href", set_picture.toString))$$--
--$$CMS_SET(void,pictureMap.put("thumbnailHref", set_picture_thumbnail.toString))$$--
--$$CMS_SET(void,pictureMap.put("alt", entry.item.lt_picture_alt))$$----$$CMS_SET(void,pictureMap.put("text", entry.item.lt_picture_caption))$$--
--$$CMS_SET(void,array.add(pictureMap.toJSON))$$--
...
--$$CMS_TRIM(level:3)$$--
--$<div class="modalGallery maxwidth" images='$CMS_VALUE(array)$' $CMS_VALUE(editorId())$></div>$--
--$$CMS_END_TRIM$
Wenn wir uns dann das DIV im Browser anschauen, sehen wir das das ARRAY im images attribute am ersten Hochkomma gebrochen wird.
Eigentlich sollte sowas doch aber von der Map.toJSON Methode abgefangen werden?
0 -
Author: sense - 4/9/2020 13:38
Ich habe das mal bei mir nachgebaut und nur die einzelnen Codeteile angepasst, aber die Funktionalität ist die Gleiche, hier erstmal der FS Code von mir als Vergleich:
$CMS_SET(array, [])$
$CMS_SET(pictureMap, {:})$
$CMS_SET(set_picture)$$CMS_REF(media: "picture_039")$$CMS_END_SET$
$CMS_SET(set_picture_thumbnail)$$CMS_REF(media: "picture_039")$$CMS_END_SET$
$CMS_SET(void,pictureMap.put("href", set_picture.toString))$
$CMS_SET(void,pictureMap.put("thumbnailHref", set_picture_thumbnail.toString))$
$CMS_SET(void,pictureMap.put("alt", "Lorem ipsum"))$
$CMS_SET(void,pictureMap.put("text", "Lorem ipsum"))$
$CMS_SET(void, array.add(pictureMap.toJSON))$
$CMS_TRIM(level:3)$
<div class="modalGallery maxwidth" images='$CMS_VALUE(array)$'></div>
$CMS_END_TRIM$
und das ergibt bei mir folgenden Ausgabe:
<div class="modalGallery maxwidth" images='[{"alt":"Lorem ipsum","href":"/fs5preview/preview/127588/media/DE/current/127836/ORIGINAL/picture_039.jpg","text":"Lorem ipsum","thumbnailHref":"/fs5preview/preview/127588/media/DE/current/127836/ORIGINAL/picture_039.jpg"}]'></div>
Hier nochmal das reine JSON, als formatierte Version
[
{
"alt":"Lorem ipsum",
"href":"/fs5preview/preview/127588/media/DE/current/127836/ORIGINAL/picture_039.jpg",
"text":"Lorem ipsum",
"thumbnailHref":"/fs5preview/preview/127588/media/DE/current/127836/ORIGINAL/picture_039.jpg"
}
]
0 -
Author: STrojette - 4/9/2020 13:41
Sind denn irgendwo im Text oder der URL Hochkomma eingebaut?
0 -
Author: sense - 4/9/2020 13:41
Achso ... im Text, also ein DOM-Text z.B.?
Teste ich grad mal ... warte :smileywink:
0 -
Author: sense - 4/9/2020 13:47
Hab jetzt 2 Eingabekomponenten hinzugefügt
Ausgabe der beiden über
$CMS_SET(void,pictureMap.put("alt", st_headline))$
$CMS_SET(void,pictureMap.put("text", st_text.normalize.toText(true)))$
dabei kommt dann folgendes JSON bei rum, ich mach mal nen Screenshot
0 -
Author: STrojette - 4/9/2020 13:47
Wir haben Hochkomma im text, im alt, und im FileName des Bildes (welches ja für die URL Generierung genutzt wird - AdvancedUrlCreator)
0 -
Author: STrojette - 4/9/2020 13:51
Das sind Gänsefüßchen, aber keine Hochkomma. :smileysad:
--> ' <--
Also halbe Gänsefüßchen. Quasi ein einzelner Gänsefuß :smileywink:0 -
Author: sense - 4/9/2020 13:53
Ok also ein "'" als Zeichen, in der Tat, das Zeichen wird nicht escaped, auch bei mir nicht.
Das ist dann ein Fall für den e-Spirit Support.
0 -
Author: sense - 4/9/2020 13:59
Nicht dafür, kannst mich auf dem Ticket gern in CC nehmen, da ich da vermutlich auch noch drüber stolpern werde --> contact@sense-design.de
0 -
Author: STrojette - 4/9/2020 13:59
Ja sehr schön.
Allerdings äußerst ärgerlich.
Da schreibe ich zum ersten Mal als erstes in die Community statt direkt an den Tech Support und dann ist es dieses Mal doch ein Fall für die. :smileyconfused:
Vielen Dank fürs testen bzw. nachstellen.
Bleib gesund und schöne Ostern.
0 -
Author: STrojette - 4/9/2020 14:06
Leider ist es mir nicht möglich das Ticket mit der von dir genannten Adresse zu teilen. :smileysad:
Falls es eine Antwort/Lösung von FS gibt, poste ich Sie aber hier.
0
Vous devez vous connecter pour laisser un commentaire.
Commentaires
12 commentaires