join
Funkce spojí pole řetězců/objektů do jednoho řetězce.
Stringjoin
(
( List<String> | List<Object> ) ls,
String glue [,
String subvalue [,
Boolean trailing [,
Boolean leading [,
Boolean empty ] ] ] ])
- ls
- Seznam spojovaných řetězců, případně objektů, z nichž se řetězce mají získat.
- glue
- Spojující řetězec.
- subvalue
- Název podhodnoty spojovaných objektů. Pokud je nastaveno, z každého prvku ls se získá podhodnota s tímto názvem a spojují se takto získané hodnoty.
- trailing
- Indikuje, zda se má na konec pospojovaného řetězce také připojit glue. Defaultně se tak neděje.
- leading
- Indikuje, zda se má na začátek pospojovaného řetězce také připojit glue. Defaultně se tak neděje.
- empty
- Indikuje, zda se má v případě, že je ls prázdný seznam, vrátit glue (hodnota
true
) nebo null (hodnotafalse
). Defaultní hodnota jefalse
.
Funkce vytvoří řetězec tak, že mezi jednotlivé prvky seznamu ls vloží řetězec glue. Pokud je seznam ls prázdný, funkce vrátí null.
Příznaky trailing a leading se uplatňují jen v případě, že je seznam neprázdný: pak se na konec, resp. na začátek vloží také oddělovač.
Pozor: Funkce ignoruje všechny hodnoty null
v seznamu ls.
Příklad: Spojení řetězců
Šablona
{with asList("a", "b", "c")}
Výchozí: {join(_, ", ")}
Trailing: {join(_, ", ", null, true)}
Leading: {join(_, ", ", null, null, true)}
{/with}
{with asList()}
Bez empty: {join(_, ", ")}
Empty: {join(_, ", ", null, null, null, true)}
{/with}
Výstup
Výchozí: a, b, c
Trailing: a, b, c,
Leading: , a, b, c
Bez empty:
Empty: ,
Možnost spojit podhodnoty objektů v seznamu se dá využít v případech, kdy je třeba spojený řetězec dále použít například jako argument.
Příklad: Spojení názvů seznamu assetů
Šablona
{join(sortedChildren(_primary), ', ', 'title')}
Výstup
Novinky, O nás, Katalog, Kontakty, Mapa stránek
Funkce sortedChildren vrací seznam všech potomků aktuální sekce.
Funkce join vybere z každého z těchto assetů podhodnotu title
(tedy titulek) a výsledek spojí do jednoho řetězce s čárkou jako oddělovačem.
Viz také funkci split.
Pro vložení příspěvku do diskuse se přihlašte.