Search the FirstSpirit Knowledge Base
Wie sortiert man eine Liste in FirstSpirit mit mehreren Einträgen abhängig von #global.locale?
Die Liste soll nach "city" sortiert werden.
$CMS_SET(list, [{"city":"Bochum","id":323},{"city":"Aachen","id":123},{"city":"Ähhausen","id":274},{"city":"Ärgerdorf","id":242}])$
Hab das hier in der Community gefunden. Das Beispiel geht aber nur mit einer einfachen Liste.
$CMS_SET(comperator, class("java.text.Collator").instance(#global.locale))$
$CMS_VALUE(list.copy.sort(comperator).toString("<br>\n"))$
Hallo,
der Trick ist hier, den Collator nicht als Comparator zu verwenden sondern sich aus dem Collator die passenden "Sortierkriterien" für einzelne Einträge zu holen. In diesem Fall den entsprechenden CollationKey. Das kann man dann gut mit einem Lambda verwenden:
$CMS_SET(list, [
{"city":"Bochum","id":323},
{"city":"Aachen","id":123},
{"city":"Ähhausen","id":274},
{"city":"Ärgerdorf","id":242}
])$
$CMS_SET(collator, class("java.text.Collator").instance(#global.locale))$
$CMS_VALUE(list.copy.sort(
x->collator.getCollationKey(x["city"])
).toString("<br>\n"))$
Viele Grüße
Michael
Hallo,
der Trick ist hier, den Collator nicht als Comparator zu verwenden sondern sich aus dem Collator die passenden "Sortierkriterien" für einzelne Einträge zu holen. In diesem Fall den entsprechenden CollationKey. Das kann man dann gut mit einem Lambda verwenden:
$CMS_SET(list, [
{"city":"Bochum","id":323},
{"city":"Aachen","id":123},
{"city":"Ähhausen","id":274},
{"city":"Ärgerdorf","id":242}
])$
$CMS_SET(collator, class("java.text.Collator").instance(#global.locale))$
$CMS_VALUE(list.copy.sort(
x->collator.getCollationKey(x["city"])
).toString("<br>\n"))$
Viele Grüße
Michael
Super!!
Genau das was ich gesucht habe 🙂