RON dokumentace

XML formuláře CSS Javascript

XML formuláře

Pokud se v PHP nezobrazují warningy a místo toho se provádění skriptu ukončí, zkontrolujte nastavení logování chyb v PHP. K chybě dochází když je nastavené log_errors na On, ale není nastavena cesta k souboru error_log - viz http://forums.iis.net/p/1146102/1856222.aspx#1856222 Pomůže správné nastavení cesty k souboru s logem, nebo případně (jako nouzové řešení) nastavení log_errors na off.

Princip a módy formulářů (parametr mode)

XML formulář definuje obsah, který se zobrazí uživateli a případně akce které se budou provádět po zadání dat. Může být předávací - to znamená, že se po po uložení vyplněný formulář uloží do databáze (Vyplněné XML formuláře) a může se předávat dalším uživatelům. Způsob zpracování formuláře určuje parametr mode.

S formulářem se pracuje v několika režimech v závislosti na jeho módu:

Starší formuláře nepoužívaly parametr mode. Místo toho měly příznak neukladat="1" nebo neukladat="2". Hodnota 2 (doplněna 7.6.2016) pracuje jinak s POST a pro akci formulare používá stejnou URL jako pro zobrazení. Navíc v nich bylo potřeba pomocí parametru verze="2" zapnout používání nového zápisu proměnných.

Pro vytváření XML formuláře je někdy užitečné zapnout ladící informace. To se provede povolením v _appdbset.php

    $enabledebugmode = 1;

a následným zapnutím v URL adrese pomocí parametru debug=1. Ladící informace se zobrazují jen uživateli, který si je takto zapne, takže je to možné provádět i u zákazníka v ostrém provozu.

Základní tvar šablony

Šablona XML formuláře musí vypadat takto:

  <?xml version="1.0"?>
  <?xml-stylesheet href="ronform.xsl" type="text/xsl"?>
  <!-- JMENO AUTORA, RON Software, 2011 -->
  <ronform mode="data" xmlns:html="http://www.ron.cz/xmlforms/ns/html/" xmlns:htmladd="http://www.ron.cz/xmlforms/ns/htmladd/>
     ... obsah xml sablony ...
  </ronform>

Pokud šablona neobsahuje editovatelné prvky, nebo je zpracování editovatelných prvků a odesílání formuláře řešené nějakým jiným způsobem, je možné místo ronform použít ronxml. Rozdíl je v tom, že ronxml nevkládá do HTML stránky form a skrytá pole. Uvnitř tagu je možné použít xmlform, který skrytá pole vloží. To lze použít například v případě, že má být ve stránce více formulářů.

    <?xml version="1.0"?>
    <?xml-stylesheet href="ronform.xsl" type="text/xsl"?>
    <!-- JMENO AUTORA, RON Software, 2013 -->
    <ronxml mode="show">
        ... obsah xml sablony ...
        ... generovaná stránka neobsahuje form a skrytá pole, takže nelze pouzit <predatdale> a podobně
    </ronxml>

Datové XML formuláře (tj. formuláře, ve kterých se při předávání ukládají jen data) musí mít parametr mode="data".

    <?xml version="1.0"?>
    <?xml-stylesheet href="ronform.xsl" type="text/xsl"?>
    <!-- JMENO AUTORA, RON Software, 2017 -->
    <ronform mode="data">
        ... obsah xml sablony ...
    </ronform>

Důležitá je správná hlavička a kořenový tag <ronform>.
Vše se řídí pravidly XML. Poznámky se zapisují mezi znaky <!-- a -->
Každý element může vypadat takto:
<JMENO_ELEMENTU> ... obsah ... </JMENO_ELEMENTU>
nebo (pokud nemá žádný vnořený obsah) takto:
<JMENO_ELEMENTU />

Pořadí parametrů v tagu není podstatné a některé parametry mohou být úplně vynechány. Záleží na velikosti písmen.

Tagy <ronform> a <xmlform> mohou obsahovat také html atributy, např. html:class="..."

Obsah XML šablony

libovolný text formátovaný pomocí HTML značek

Kopíruje se do HTML a v případě transformovaných formulářů (mode="transform") i do výsledného vyplněného formuláře
<div> ... obsah ... </div>

V obsahu lze použít HTML značky, ale musí odpovídat XML pravidlům.
Např.

Pozor! Text nesmí obsahovat řídící znaky jako např. "<" a ">" Pro zobrazení těchto znaků lze použít aliasy &lt; a &gt; Nebo lze text uzavřít do sekce CDATA

HTML tabulky

  <table class="browser">
     <tr>
        <td>testovací tabulka</td><td>sloupec 2</td><td>třetí sloupec</td>
     </tr>
     <tr>
        <td>druhý řádek</td><td>té testovaci</td><td>tabulky ...</td>
     </tr>
  </table>

Proměnnou je možné použít v obsahu a atributech některých tagů. Použije se pomocí zápisu {$NAZEV_PROMENNE}. U tagů, ve kterých se zadává přímo PHP kód (např. expression nebo if) je možné použít také referenci naproměnnou {@NAZEV_PROMENNE}. V tomto případě se místo hodnoty proměnné vloží kód pro načtení hodnoty této proměnné.

Text

<text>
   Text s proměnnýma ...
</text>
Zobrazí přímo zadaný text s nahrazením proměnných.

Editovatelné prvky

POZOR! Každý prvek musí mít své jedinečné jméno v rámci celého XML formuláře. Toto jméno musí odpovídat identifikátoru programovacího jazyka (začíná písmenem, dále může obsahovat písmena i čísla). Nepoužívejte pro jména diakritiku!

Hidden pole

Vloží do formuláře prvek hidden. Používá se pro předání informací, které nezadává uživatel (např. načtené z databáze).
   <hidden name="nazev" value="hodnota" format=""/>

POST - načtení hodnoty zadané uživatelem do proměnné

   <postvalue name="nazev" format="" htmlname="htmlname" />
Načte do proměnné se zadaným názvem hodnotu odeslanou v předchozím kroku formuláře. Může to být hodnota zadaná uživatelem, nebo odeslaná v pomocí <hidden>. Umožňuje zjistit hodnotu zadané proměnné ještě před tím, než se ve formuláři zpracuje příslušný editovatelný prvek (edit a podobně). Parametr name určuje jméno vytvořené proměnné. Parametr format určuje požadovaný datový formát. Nepovinný parametr htmlname určuje jméno použité v html stránce. Pokud není zadán, použije se name.

Log v datovém XML a jeho zobrazení

Do datových XML formulářů se zapisuje log. Obsahuje hodnoty editovatelných polí zadané uživatelem. Kromě toho je možné zapsat do něj záznamy pomocí tagu <xmllog>
   <xmllog value="text s proměnnými, který se zapíše do XML"/>
Zobrazení logu:
   <showxmllog name="jmeno"/>

   <showxmllog name="jmeno">
     <div><span class="dotaznik_jmeno">{$xmllog_username} ({$xmllog_time})</span>: <b>{$xmllog_value}</b></div>
   </showxmllog>
Zobrazí log pro příslušný editační prvek (parametr name). Pokud je obsah elementu prázdný (první způsob zápisu), zobrazí výchozí vzhled logu, Pokud má element vnořený obsah (druhý způsob zápisu), použije jej pro výpis každého záznamu. Vnořený obsah může obsahovat jakékoliv jiné tagy a lze použít proměnné xmllog_name, xmllog_time, xmllog_username, xmllog_value, xmllog_value_br (konce řádků jsou nahrazeny tagem br), xmllog_poradipredavani, xmllog_urovenpredavani. xmllog_value_br lze vypsat například takto:
    <showxmllog name="poznamka">
        <div><span class="dotaznik_jmeno">{$xmllog_username} ({$xmllog_time})</span>: <b><text>{$xmllog_value_br}</text></b></div>
    </showxmllog>

Debugovací a informační hlášky

   <debugmsg>text debugovací hlášky s parametry</debugmsg>
   <infomsg>text informační hlášky s parametry</infomsg>
Text hlášky se vypíše přímo do intrawebu ihned v okamžiku zpracování tagu a to v režimu show i fill. <debugmsg> se zobrazuje jen v debug režimu, infomsg vždy.

Parametry v SQL dotazech

Parametr se do dotazu vloží takto: {$JMENO_PROMENNE:FORMAT}
Format je nepovinný, výchozí je string. U jiných datových typů musí být zadán.
Možné formáty (některé mají různé možné názvy - není mezi nimi rozdíl):

HTML odkaz

    <link action="akce"  params="parametry"  text="zobrazený text"  question="nepovinná otázka před provedením akce" />
Zobrazí HTML odkaz pro provedení zadané akce s parametry v aktuálním formuláři

Uzavření formuláře a změna stavu

    <uzavrit />
- uzavře formulář (nastaví stav = 128)
    <stav novystav="0" />
- nastaví stav na zadanou hodnotu

Předání formuláře na další (předchozí) úroveň

    <predat smer="1" />
- předá formulář o zadaný počet kroků dále (zpět). Parametr smer musí být celé číslo (kladné = předat dále, záporné = vrátit zpět). Hodnota -999 znamená předání na začátek.

Přesměrování na jiný XML formulář

    <prejitnaxml idsablony="..." />
Po provedení formuláře (fill) přejde na zadané XML - tj. zobrazí zadaný XML formulář místo standardního seznamu formulářů (přechod provede pouze v případě, že už se formulář nezobrazuje, například po odeslání formuláře).

Mapování standardní funkčnosti Intrawebu (menuid) na XML formulář

V aplikaci je možné změnit standardní funkčnost Intrawebu přesměrováním na XML formulář. Provede se v nastavení intrawebu, záložka Předávací procesy, XML. Kromě běžných "menuid" je tam možné přemapovat také zobrazení seznamu hodnocení - zadáním řádku

    b_hodnoceni=id xml formuláře

Pomocí tagu <mapovanimenu> v XML formuláři je pak možné nastavit, jestli se po zobrazení formuláře provede ještě nějaká další (např. defaultní) akce. XML formulář tak může být použit jen pro zobrazení uživatelských informací před samotným obsahem stránky, například pokyny pro uživatele.

    <mapovanimenu pokracovat="0/1" menuid="nove_menuid" />
Parametr pokracovat určuje, jestli se po zobrazení formuláře ještě pokračuje standardní obsluhou události. Navíc lze událost změnit pomocí parametru menuid.

Smazání vyplněného XML formuláře

    <delete okinfomsg="Formulář byl smazán z databáze" />
- smaže formulář z databáze a v případě úspěchu zobrazí zadanou hlášku

Dokumenty

    <dokument name="JMENO_POLE" popis="popis dokumentu" typ="kod_typu" style="html_styl"/>
Zobrazí pole pro přiložení souboru. Soubor se potom zapíše do tabulky dokument a propojí s XML formulářem záznamem v tabulce DokumentXMLFormulare. Po vložení souboru se vytvoří nový záznam v tabulce Dokument, tag dokument se transformuje na pripojenydokument a zobrazuje se odkaz na stáhnutí souboru.
Pomocí parametru editing (hodnoty yes/no) je možné nastavit, jestli bude možné vložit více dokumentů.

viewfile

Tagem viewfile je možné změnit způsob zobrazení celé webové stránky. Parametrem frame="1" se zapíná zobrazení stránky bez hlavičky a menu (vhodné například pro umístění do frame):
    <viewfile frame="1"/>
Parametrem filename="...." je možné použít jakýkoliv jiný PHP soubor pro vygenerování stránky.

rozdelenivyroby, vyrobaosoby

Zobrazí formulář pro rozdělení výroby jednoho dne, respektive celého měsíce.

Systémové formuláře

Události SKOLENI_PRIHLASENI_BEFORE a SKOLENI_PRIHLASENI_AFTER obsahují navíc oproti záznamu record i proměnné osobaRC, osobaOsobniCislo a osobaDatumNastupu pro identifikaci vybraného pracovního poměru osoby.

HTML parametry

U většiny tagů, které generují obsah do HTML (edit, memo, checkbox, ..., ulozit, predatdale, ...) je pomocí prefixu html možné doplnit i parametry, které se přímo vygenerují do XML. Ke kořenovému elementu XML formuláře se v tom případě musí doplnit namespace:
    <ronform
            xmlns:html="http://www.w3.org/1999/xhtml"
            mode="data">
        ...
        <edit name="muj_edit" html:style="width: 500px" />
        ...
    </ronform>

Tipy

Vložení mezery 50 pixelů (např. mezi tlačítka)
    <span style="display:inline-block; width:50px;"> </span>

Zarovnání obsahu doprava
    <span style="float:right"> ... (obsah) ... </span>