Search the FirstSpirit Knowledge Base
In unserem Firstspirit 5 Projekt werden Datenquelleninhalte von Redakteuren gepflegt und da sich mitlerweile schon sehr viele Einträge darin befinden (einige sogar noch aus FS3) haben wir ein CSV import script programmieren lassen, welches auch sehr gut funktioniert
Bei der erstellung der ausgangsfiles hapert es aber leider:
um ein CSV zu generieren habe ich im Template folgendes:
$CMS_IF(#cs.isFirstContentRow)$"item_id";"item_type";"item_name";"name";"shortdescription";"longdescription";"legaltext"$CMS_ELSE$$CMS_END_IF$
$CMS_TRIM(level:4)$
"$CMS_TRIM(level:4)$$CMS_VALUE(#row.ITEM_ID, default:"")$$CMS_END_TRIM$";
"$CMS_TRIM(level:4)$$CMS_VALUE(#row.ITEM_TYPE, default:"")$$CMS_END_TRIM$";
"$CMS_TRIM(level:4)$$CMS_VALUE(#row.ITEM_NAME, default:"")$$CMS_END_TRIM$";
"$CMS_TRIM(level:4)$$CMS_VALUE(#row.name.replaceAll("", ""), default:"")$$CMS_END_TRIM$";
$CMS_SET(tmpshort)$$CMS_TRIM(level:4)$$CMS_VALUE(#row.Description)$$CMS_END_TRIM$$CMS_END_SET$"$CMS_VALUE(tmpshort.toString.replace("\"","\\\""))$";
$CMS_SET(tmplong)$$CMS_TRIM(level:4)$$CMS_VALUE(#row.kDescription)$$CMS_END_TRIM$$CMS_END_SET$"$CMS_VALUE(tmplong.toString.replace("\"","\\\""))$";
$CMS_SET(tmplegal)$$CMS_TRIM(level:4)$$CMS_VALUE(#row.legaltext)$$CMS_END_TRIM$$CMS_END_SET$"$CMS_VALUE(tmplegal.toString.replace("\"","\\\""))$"
$CMS_END_TRIM$
Dies funktioniert auch sehr gut jedoch ist die Ausgabe mit allen HTML entities.
Wie schaffe ich es, damit zumindest die umlaute nicht in html ausgegeben werden (in der datenbank stehen die umlaute "normal")
Danke
Christoph
Hallo Christoph,
normalerweise würde ich antworten, dass da bei der Ausgabe keine Konvertierung erfolgt, diese wahrscheinlich in den Eingabekomponenten definiert sein wird (convertEntities="STANDARD" oder ="QUOTE"). Dann wäre die Lösung, diese auf NONE zu ändern oder eine eigene Vorlage für die CSV Ausgabe zu definieren, wenn andere Ausgabekanäle die Konvertierung benötigen und der Aufwand zu groß ist, dort die Ausgabe mittels .convert bzw. .convert2 durchzuführen.
Aber Du gibst ja mittels #row aus, solltest also nach meinem Verständnis nicht über die Eingabekomponente gehen. Insofern vermute ich einfach mal, dass Du die Ausgaben in einer Formatvorlage machst und dort eine Konvertierungsregel ausgewählt ist. Dann ist die Lösung, in der Formatvorlage keine Konvertierungsregel auszuwählen.
Viele Grüße aus Dortmund,
Holger
Hallo Christoph,
am einfachsten wäre es sicherlich, wenn Du in den CMS_VALUES per .replace("ü", "ü").replace("ö", "ö").replace("ä", "ä") die Umlaute ersetzt.
Ansonsten müsste man mal schauen, woran es liegt, dass die Umlaute konvertiert werden.
Viele Grüße
Donato
Hallo Christoph,
normalerweise würde ich antworten, dass da bei der Ausgabe keine Konvertierung erfolgt, diese wahrscheinlich in den Eingabekomponenten definiert sein wird (convertEntities="STANDARD" oder ="QUOTE"). Dann wäre die Lösung, diese auf NONE zu ändern oder eine eigene Vorlage für die CSV Ausgabe zu definieren, wenn andere Ausgabekanäle die Konvertierung benötigen und der Aufwand zu groß ist, dort die Ausgabe mittels .convert bzw. .convert2 durchzuführen.
Aber Du gibst ja mittels #row aus, solltest also nach meinem Verständnis nicht über die Eingabekomponente gehen. Insofern vermute ich einfach mal, dass Du die Ausgaben in einer Formatvorlage machst und dort eine Konvertierungsregel ausgewählt ist. Dann ist die Lösung, in der Formatvorlage keine Konvertierungsregel auszuwählen.
Viele Grüße aus Dortmund,
Holger
Hallo Christoph,
benötigst Du noch weitere Hilfe oder haben Dir Donatos und Holgers Antwort bereits geholfen?
In diesem Fall wäre es super, wenn Du die "richtige Antwort" entsprechend markierst, damit auch andere
Community-Teilnehmer diese auf den ersten Blick finden. Solltest Du zwischenzeitlich eine eigene Lösung
gefunden haben, wäre es nett, wenn Du diese hier bereitstellst.
Viele Grüße
Michaela
Der html standard ausgabekanal an sich hat schon die konvertierung der umlaute konfiguriert.
- Meine Abhilfe: Neuer ausgabekanal csv im projekt der als standard nicht mitgeneriert wird sondern einen eigenen scheduler bekommt und einzeln ausgeführt werden kann.
Danke