
/shared/actions/_transforms/additional-functions.xsl
<xsl:template name="...".
removeNils

Parametry

value (string, default '')

Popis
Rekurzivně odstraňuje úvodní znaky '0' z řetězce a vrátí zbytek. Pokud řetězec nezačíná nulou, vrátí jej beze změny.
getLastPathStep

Parametry

path (string, default '')

Popis
Z řetězce cesty ve tvaru aaa/bbb/ccc vrátí poslední segment za posledním lomítkem (zde ccc). Implementováno rekurzivním ořezáváním části před /.
getPathWithoutLastStep

Parametry

path (string, default '')

idx (interní index, default 0)

Popis
Vrací vstupní cestu bez posledního segmentu (např. z aaa/bbb/ccc vrátí aaa/bbb). Parametr idx se používá interně při rekurzi a při volání zvenku se ponechává default.
replace

Parametry

string (string, default '')

find (string, default '')

insert (string, default '')

Popis
Rekurzivní „find/replace“ – v řetězci string nahradí všechny výskyty podřetězce find textem insert. Pokud je string nebo find prázdný, vrátí původní string.
getIconFile

Parametry

fileRef (string, default '') – očekává se formát path:name:file.ext (flexideo reference)

Popis
Z reference souboru získá název souboru a jeho příponu a vrátí název souboru ikony ve tvaru f-<přípona>.png (např. f-pdf.png). Využívá šablony getFileName a getIconFileType.
getIconFileType

Parametry

fileName (string, default '')

Popis
Z názvu souboru vrací „typ“ dle přípony – rekurzivně odřezává vše před tečkou, až zůstane poslední segment bez tečky (např. z report.final.pdf vrátí pdf).
getFileName

Parametry

fileRef (string, default '')

Popis
Z reference path:name:file.ext vrátí čistý název souboru (část za druhou dvojtečkou).
getUnicateBrackets

Parametry

value (string, default '') – text s opakujícími se závorkami, např. (A)(B)(A)

skipBracketsOutput (string, default 'no') – při 'no' včetně závorek, jinak jen hodnoty oddělené mezerou

Popis
Z textu obsahujícího položky v závorkách vybere jednotlivé hodnoty bez duplicit a postupně je vypíše (např. z (A)(B)(A) vrátí (A)(B) nebo A B). Používá rekurzi a vnitřní kontrolu, zda už položka nebyla jednou zahrnuta.
getPwdByBigInt

Parametry

bigInt (číslo / string, default 0) – dvojciferné kódy za sebou, např. 100523...

Popis
Bere vstup jako řetězec dvouciferných kódů a pro každé dvě cifry zavolá getCharByNo, čímž vytvoří „heslový“ řetězec. Rekurzivně zpracovává vstup (první 2 číslice → znak, zbytek → další rekurze).
getCharByNo

Parametry

no (číslo, default -1)

Popis
Mapuje číselný kód (0–99) na jeden znak (0–9, a–z, A–Z, některé další znaky dle konkrétní mapy). Používá velkou sekvenci <xsl:when test="$no=...">znak</xsl:when>. Primárně interní služebná šablona pro getPwdByBigInt.
addNills

Parametry

value (string, default '') – původní hodnota

len (číslo, default 10) – cílová délka

Popis
Odstraní mezery z value a:

pokud je len < 1, vrátí ## (indikace chyby),

pokud je value delší než len, vrátí řetězec # o délce len,

jinak doplní zleva nuly tak, aby výsledná délka byla len.
Typicky se používá pro pevnou délku číselných řetězců.
getMaxNumber

Parametry

csvNumbers (string, default 0) – seznam čísel oddělených čárkou, např. 10,5,7

Popis
Vrací maximum z čísel uvedených v CSV řetězci. Je jen „wrapper“ nad interní šablonou getMinMaxNumber s nastavením na hledání maxima.
getMinNumber

Parametry

csvNumbers (string, default 0)

Popis
Vrací minimum z čísel uvedených v CSV řetězci. Používá getMinMaxNumber s parametrem minValue=true().
getMinMaxNumber

Parametry

csvNumbers (string, default 0) – čárkami oddělený seznam čísel

minValue (boolean, default false()) – true() → minimum, false() → maximum

resNo (string/číslo, default '') – aktuální nejmenší/největší hodnota (interní)

Popis
Rekurzivně prochází seznam čísel z csvNumbers, porovnává vždy dvě čísla a průběžný výsledek ukládá do resNo. Na konci vrací buď minimální, nebo maximální hodnotu podle minValue. Běžně se volá přes getMinNumber / getMaxNumber.
MakeItemNodes

Parametry

count (číslo, default 0) – počet generovaných položek

groupID (string, default '') – hodnota atributu group-id na kořeni

recurs (číslo, default 0) – interní rekurzivní čítač

Popis
Vytvoří strukturu:
<items group-id="{groupID}">
<item no="1"/>
<item no="2"/>
...
</items>
Počet <item> je dán parametrem count. Parametr recurs se používá pouze interně pro rekurzi.
MakeMultiElementCopy

Parametry

skeys (node-set/atributy, default xxxx) – seznam klíčů (obvykle atributy @skey/ @psk...)

from (node-set, default *[@skey]) – zdrojové elementy, z nichž se čerpají hodnoty

name (string, default 'xxx') – název cílového elementu

sref (string, default '') – volitelná „cesta“ k podsadě elementů, které se mají zpracovat

Popis
Podle vstupního seznamu skeys sestaví seznam elementů <{name}>:

při existenci sref se nejprve rekurzivně „dojde“ do zadané podsložky,

pokud chybí skeys i from, vytvoří jeden prázdný element s skey="#1",

pokud je from bez skeys, vytvoří dle from elementy s skey="#1",

jinak pro každý skey vytvoří element s atributy skey, changed="true" a případně deleted="true" pokud pozice přesahuje počet zdrojových prvků.
Typicky se používá pro normalizaci vícenásobných hodnot (multi-value) v replikátoru.
getNumStringList

Parametry

value (string, default '') – CSV řetězec, např. 123,4567,89

minLen (číslo, default 7) – minimální délka hodnoty, která má být zahrnuta

anyRes (boolean, default false()) – interní informace, zda už byla nějaká hodnota vypsána (kvůli vkládání čárek)

Popis
Z CSV řetězce vybere jen hodnoty, jejichž délka je alespoň minLen, a vrátí je jako CSV řetězec, kde jsou jednotlivé hodnoty uzavřené v apostrofech – např. 1234567,12 → '1234567'. Používá rekurzi.
extractIDs

Parametry

value (string, default '') – vstupní text, ve kterém se hledají čísla

anyNo (boolean, default false()) – interně: zda už bylo nějaké číslo vypsáno

inNo (boolean, default false()) – interně: zda aktuálně pokračuje čtení jednoho čísla

Popis
Prochází text po znacích a skládá souvislé sekvence číslic do čísel; výsledkem je seznam čísel oddělených čárkami. Pomocné parametry slouží k řízení zápisu čárek a detekci začátku/konce čísla.
removeDiacritic

Parametry

value (string, default . = aktuální uzel)

pretr (string, default = translate(value, 'ěščř...', 'escrr...')) – předpřipravený řetězec po nahrazení diakritiky

Popis
Rekurzivně projde znaky v pretr (tj. value bez diakritiky) a:

povolené znaky [a-zA-Z0-9_.-] nechá beze změny,

ostatní znaky nahradí _.
Typicky se používá pro generování „bezpečných“ identifikátorů z textových popisů (např. pro @name).
translateAmpChars

Parametry

text (string, default '')

Popis
Rekurzivně zpracuje entitové zápisy začínající & v textu a nahrazuje:

→ mezera,

> → znak > (full-width),

< → znak < (full-width),

& → znak a (specifické chování dle potřeb aplikace).
Pokud žádná z těchto entit nenavazuje, vrátí text beze změn.
getColorByPdk

Parametry

pdkNo (číslo, default 1)

Popis
Vypočítá pseudo-náhodnou pastelovou barvu na základě pdkNo:

spočítá biggerNo = 123 * pdkNo * 123,

vezme poslední tři číslice, každou převede pomocí basicColors na dvoumístný hex kód,

výsledkem je barevný kód ve formátu #RRGGBB.
Používá se např. pro konzistentní barevné odlišení položek dle PDK/ID.
basicColors

Parametry

no (číslo, default 0)

Popis
Převádí číslo 0–9 na jeden z předdefinovaných dvoumístných hex kódů ( b0, a8, c8, …). Pro jiné hodnoty vrací d4. Primárně interní šablona pro getColorByPdk.
removeHtmlTags

Parametry

html (string, default '') – text s HTML značkami, obvykle escapovaný ( <, >)

Popis
Rekurzivně „stripuje“ HTML značky ze vstupního textu:

bloky <script> a <style> kompletně přeskočí,

běžné značky nahradí podle typu: např. <div>, <li>, <br>, <tr>, <th>, <h*>, <p> mohou přidat odřádkování nebo tečku •,

ponechává pouze textový obsah v rozumně čitelné podobě.
Výsledkem je text bez HTML tagů, vhodný pro uložení jako „čistý“ popis.
dateDiffMonths

Parametry

dateA (string, default '') – datum ve formátu YYYY-MM-DD nebo YYYY-MM-DDThh:mm:ss

dateB (string, default '') – totéž

Popis
Vypočítá přibližný rozdíl mezi dateA a dateB v měsících. Nejprve oddělí datum od případného času, rozloží na rok/měsíc/den a spočítá:
(yearB - yearA) * 12 + (monthB - monthA) + (dayB - dayA) div 30Pokud formát neodpovídá délce 10 znaků, vrátí 0.
toLCase

Parametry

value (string, default '')

Popis
Převádí text do malých písmen včetně české diakritiky (rozšířená sada znaků) pomocí funkce translate(). Čísla a některé další znaky ponechává beze změny.
toUCase

Parametry

value (string, default '')

Popis
Opačná funkce k toLCase – převádí text do velkých písmen včetně české diakritiky.
textToRowNodes

Parametry

text (string, default . = aktuální uzel) – typicky víceradkový text

crlf (string, default 
) – odřádkovací znak (LF)

Popis
Rozseká vstupní text po řádcích podle crlf (konce řádku) a pro každý řádek zavolá šablonu textToRowNode. Výsledkem je několik <row> uzlů, které reprezentují jednotlivé řádky textu (např. pro konverzi „zdivočelých“ e-mailových textů do strukturovaných dat). Zároveň vstupní řádky normalizuje, tedy u hodnot provede odebrání bílých znaků před a za obsahem, uvnitř redukuje případné multiplikované mezery na jednu atp. Zároveň z výsutpu vypustí prázdné řádky bez obsahu.

Výstupní atributy uzlu row
| Atribut | Kdy se vytváří | Popis |
|---|---|---|
| @label | Pokud řádek obsahuje znak ":" (dvojtečku) | Normalizovaný text před dvojtečkou. |
| @name | Pokud existuje @label | Normalizovaný „název pole“: malé znaky, ASCII, mezery → pomlčky. Bez diakritiky. |
| @value | Pokud existuje @label | Normalizovaný obsah za dvojtečkou. |
| @note | Pokud řádek NEobsahuje „:“ | Text řádku jako poznámka. Slouží i pro doplňující popisy k předchozím položkám. |
Příklad zdrojového textu:
Jméno: JanVytvoří:
<row label="Jméno" name="jmeno" value="Jan"/>
textToRowNode

Parametry

text (string, default '') – obsah jednoho řádku

Popis
Z jednoho textového řádku vytvoří <row> uzel:

předběžně odstraní „podivné“ znaky a normalizuje mezery,

pokud řádek obsahuje ::

část před : uloží do atributu @label,

z ní vygeneruje @name (malá písmena, mezery → -, bez diakritiky, prohnáno removeDiacritic + toLCase),

část za : uloží do @value,

pokud : neobsahuje, uloží celý normalizovaný text do atributu @note.
Prázdné řádky se ignorují.