Skip to main content

Popis šablon akcí v additional-functions.xsl

Přehled všech jmenných XSLT šablon v additional-functions.xsl s parametry a stručným popisem.

Soubor je umístěn v

/shared/actions/_transforms/additional-functions.xsl


a je možné jej do akcí připojit pomocí volby "Jiné soubory šablon" ve výběru šablony

![](../../../images/wiki.flexideo.com/supp-images/file000000040587)

Jednotlivé sekce popisují pojmenované šablony, tedy

<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 30


Pokud 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**

AtributKdy se vytváříPopis

**@label**Pokud řádek obsahuje znak **":"** (dvojtečku)Normalizovaný text *před* dvojtečkou.

**@name**Pokud existuje @labelNormalizovaný „název pole“: malé znaky, ASCII, mezery → pomlčky. Bez diakritiky.

**@value**Pokud existuje @labelNormalizovaný 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: Jan


Vytvoří:

<row label="Jméno" name="jmeno" value="Jan"/>


Šablona je využívána v procesu [extrakce leadů z emailu](/supp-fxd-intranet-cz/implementation/mail-to-lead-pg.html).

### textToRowNode

*Pomocná šablona pro **textToRowNodes**.*

- **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í.