Sprachabhängige Sortierung
Author: TimoMeister
Publication Date: 12/9/2014 14:23
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"))$
-
Author: mbergmann - 12/9/2014 20:40
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
0
Vous devez vous connecter pour laisser un commentaire.
Commentaires
1 commentaire