<if testtype="typ_testu" condition="php_vyraz" param1="parametr1" param2="parametr2" sql="SELECT_sql_vyraz"> ... obsah ... </if>
Vyhodnotí podmínku a v případě její platnosti provede obsah.
Atributy:
testtype
- (nepovinný) Typ testu, který se má provést.condition
- (nepovinný) PHP výraz, který se vyhodnotí v případě, že je testtype="expression"
nebo není zadán.param1
- (nepovinný) První parametr pro testy.param2
- (nepovinný) Druhý parametr pro testy.sql
- (nepovinný) SQL výraz pro testy emptysql a notemptysql.Typy testů:
expression
- (výchozí hodnota) - vyhodnotí podmínku z atributu condition pomocí funkce PHP eval(). Podmínka může obsahovat proměnné.emptysql
- vrací true, pokud je obsah výsledku SQL dotazu zadaného atributem sql
prázdný.notemptysql
- vrací true, pokud obsah výsledku SQL dotazu zadaného atributem sql
není prázdný.error
- vrací true, pokud v průběhu vykonávání XML formuláře došlo k chybě (generované tagem <error> nebo nějaké jiné chybě).=, ==, eq, >, gt, >=, gteq, <, lt, <=, lteq, <>, !=, neq, noteq
- porovnání parametrů param1 a param2. Parametry mohou obsahovat proměnné.eqci, neqci, noteqci
- case insensitive porovnání parametrů param1 a param2. Parametry mohou obsahovat proměnné.or, and
- provede logickou operaci se všemi parametry param1, param2, .... Počet parametrů není omezen, ale v řadě nesmí být žádný vynechaný (takže nelze zadat např. param1, param3 a vynechat param2)
not, !
- logická operace not boolovské hodnoty parametru param1
Pokud není zadán typ testu a je zadán parametr param1, tak se vyhodnotí boolovská hodnota tohoto parametru. Pokud není param1 zadán, tak je implicitní typ testu "expression". POZOR! Nepoužívejte v textu podmínky poznámky - pokud je to SQL dotaz, je předán serveru včetně těch poznámek!
<if testtype="eq" param1="{$promenna1}" param2="{$promenna2}"> ... obsah ... </if>Pokud je hodnota proměnné
promenna1
rovna (eq) hodnotě proměnné promenna2
provede se obsah.
<if condition="{$cena:float} * (100 + {$sazbaDPH:float}) / 100 > {$maximalniCena:float}"> ... </if>Pokud je splněna zadaná podmínka, provede se obsah.
<if testtype="emptysql" sql="SELECT Id FROM PracovniPomer WHERE RC = {$rc_osoby}"> ... </if>Provede obsah, pokud je výsledek zadaného SQL dotazu prázdný (když nenajde pracovní poměr se zadaným RC)