sort
Seřadí kolekci podle zvolených pravidel.
Collectionsort
(
Collection input,
String direction [,
String subvalue-path [,
Comparator comparator ] ])
- input
- Výchozí kolekce, kterou je třeba seřadit.
- direction
- Směr řazení: cokoliv začínající na 'A' nebo 'a' značí řazení vzestupně, ostatní hodnoty řazení sestupně.
- subvalue-path
- Cesta k podhodnotě, podle které se mají prvky výchozí kolekce řadit. Jednotlivé kroky jsou oddělené tečkou. Každý krok je jméno podhodnoty, která se má získat z aktuální hodnoty. Pokud není cesta definovaná, řadí se přímo podle prvků kolekce.
- comparator
- Komparátor, tedy objekt definující pravidla řazení – typicky podle aktuálního jazyka.
{while sort(kolekceAssetu, "A", "title")}
...
{/while}
Předpokládáme, že je definovaná proměnná kolekceAssetu
obsahující seznam s assety (proměnnou mohla do šablony zveřejnit řídící třída pageletu apod.).
Pro účely dané iterace je pomocí funkce sort seřadíme abecedně podle titulku: jednotlivé prvky kolekce jsou assety, cesta k podhodnotě pro porovnání je jednokroková, název podhodnoty je "title".
Funkci lze použít k seřazení mapy podle klíčů nebo hodnot.
{with asMap(
"x", "b",
"z", "a",
"y", "c"
)}
klíče abecedně: {sort(_, "A", "key")}<br />
hodnoty abecedně: {sort(_, "A", "value")}
{/with}
klíče abecedně: [x=b, y=c, z=a]<br />
hodnoty abecedně: [z=a, x=b, y=c]
Kolekcí k setřídění může být cokoli, co je v prostředí TFS iterovatelné; speciálně tedy také výčtový zdroj položek.
{while sort(_template.menu_source, "A", "index.title")}
...
{/while}
Iterací přes výčtový zdroj se získá seznam assetových obálek; ty se pak řadí podle podhodnoty "title" (titulku) na podhodnotě "index" (dětském assetu sekce s názvem "index").
Poznámky k různým verzím systému jNetPublish
Funkce byla přidána ve verzi 3.4.26 (dřívější verze ji mají, ale nefunguje korektně).