Popis šablon akcí v additional-functions.xsl

Upravit obsah stránky

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
    bullet

    /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

Jednotlivé sekce popisují pojmenované šablony, tedy
<xsl:template name="..."
.

removeNils

    bullet

    Parametry

      bullet

      value (string, default '')

    bullet

    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

    bullet

    Parametry

      bullet

      path (string, default '')

    bullet

    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

    bullet

    Parametry

      bullet

      path (string, default '')

      bullet

      idx (interní index, default 0)

    bullet

    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

    bullet

    Parametry

      bullet

      string (string, default '')

      bullet

      find (string, default '')

      bullet

      insert (string, default '')

    bullet

    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

    bullet

    Parametry

      bullet

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

    bullet

    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

    bullet

    Parametry

      bullet

      fileName (string, default '')

    bullet

    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

    bullet

    Parametry

      bullet

      fileRef (string, default '')

    bullet

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

getUnicateBrackets

    bullet

    Parametry

      bullet

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

      bullet

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

    bullet

    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

    bullet

    Parametry

      bullet

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

    bullet

    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

    bullet

    Parametry

      bullet

      no (číslo, default -1)

    bullet

    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

    bullet

    Parametry

      bullet

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

      bullet

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

    bullet

    Popis
    Odstraní mezery z value a:

      bullet

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

      bullet

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

      bullet

      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

    bullet

    Parametry

      bullet

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

    bullet

    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

    bullet

    Parametry

      bullet

      csvNumbers (string, default 0)

    bullet

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

getMinMaxNumber

    bullet

    Parametry

      bullet

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

      bullet

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

      bullet

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

    bullet

    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

    bullet

    Parametry

      bullet

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

      bullet

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

      bullet

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

    bullet

    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

    bullet

    Parametry

      bullet

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

      bullet

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

      bullet

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

      bullet

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

    bullet

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

      bullet

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

      bullet

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

      bullet

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

      bullet

      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

    bullet

    Parametry

      bullet

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

      bullet

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

      bullet

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

    bullet

    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

    bullet

    Parametry

      bullet

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

      bullet

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

      bullet

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

    bullet

    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

    bullet

    Parametry

      bullet

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

      bullet

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

    bullet

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

      bullet

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

      bullet

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

translateAmpChars

    bullet

    Parametry

      bullet

      text (string, default '')

    bullet

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

      bullet

      &nbsp; → mezera,

      bullet

      &gt; → znak > (full-width),

      bullet

      &lt; → znak < (full-width),

      bullet

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

getColorByPdk

    bullet

    Parametry

      bullet

      pdkNo (číslo, default 1)

    bullet

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

      bullet

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

      bullet

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

      bullet

      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

    bullet

    Parametry

      bullet

      no (číslo, default 0)

    bullet

    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

    bullet

    Parametry

      bullet

      html (string, default '') – text s HTML značkami, obvykle escapovaný ( &lt;, &gt;)

    bullet

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

      bullet

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

      bullet

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

      bullet

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

dateDiffMonths

    bullet

    Parametry

      bullet

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

      bullet

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

    bullet

    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

    bullet

    Parametry

      bullet

      value (string, default '')

    bullet

    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

    bullet

    Parametry

      bullet

      value (string, default '')

    bullet

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

textToRowNodes

    bullet

    Parametry

      bullet

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

      bullet

      crlf (string, default &#xA;) – odřádkovací znak (LF)

    bullet

    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.

    bullet

    Výstupní atributy uzlu row

AtributKdy se vytváříPopis
@labelPokud řádek obsahuje znak ":" (dvojtečku)Normalizovaný text před dvojtečkou.
@namePokud existuje @labelNormalizovaný „název pole“: malé znaky, ASCII, mezery → pomlčky. Bez diakritiky.
@valuePokud existuje @labelNormalizovaný obsah za dvojtečkou.
@notePokud řá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.

textToRowNode

Pomocná šablona pro textToRowNodes.
    bullet

    Parametry

      bullet

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

    bullet

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

      bullet

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

      bullet

      pokud řádek obsahuje ::

        bullet

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

        bullet

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

        bullet

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

      bullet

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