Podmínkové příkazy

Kromě klasických funkcí, které vykonají přímou akci podporuje Pub-Me CMS také podmínky. K tomu využívá příkazů if, else a endif. If definuje podmínku, else se provede v případě nesplnění podmínky a endif celou podmínku uzavírá. Narozdíl od ostatních funkcí musí stát podmínkové příkazy if, else a endif samostatně bez mezer v „závorkách“ <%...%>, tzn. <%if(podminka)%> ... <%else%> ... <%endif%>. Chcete-li použít více vložených podmínek je to možné, použijete-li následující konstrukci:

<%if("podminka1")%>
  1. podmínka splněna
  <%if("podminka2")%>
    2. podmínka splněna (else není definováno)
  <%endif%>
<%else%>
  1. podmínka nesplěna
  <%if("podminka3")%>
    3. podmínka splněna
  <%else%>
    3. podmínka nesplněna
  <%endif%>
<%endif%>

Podmínka s argumenty „typu boolean“ má formát <%if("podminka")%>, podmínka s argumenty, které porovnávají argument s hodnotou zadanou uživatelem mají formát <%if("podminka=hodnota")%>. Viz příklady.

<%if("comments")%>Podmínka splněna<%endif%> // Kladná podmínka (komentáře povoleny)
<%if("!comments")%>Podmínka splněna<%endif%> // Záporná podmínka (komentáře nejsou povoleny)
<%if("lang=cs")%>Podminka splněna<%endif%> // Kladná podmínka (aktuální jazyk je čeština)
<%if("!lang=cs")%>Podminka splněna<%endif%> // Záporná podmínka (aktuální jazyk není čeština)

Pozn.: Argumenty lze zadávat i bez uvozovek  - tedy např. <%if(comments)%> Povšimněte si, že hodnota porovnávaná se argumentem není sama uzavřena v uvozovkách. Na rozdíl od programovacích jazyků založených na syntaxi C (JS, PHP...) se pro porovnávání nepoužívá zdvojené rovná se (==), ale pouze jednoduché rovná se (=). Zápornou podmínku vytvoříme přidáním vykřičníku ! na začátek argumentu (nefunguje operátor !=).

Argumenty podmínkových příkazů

Pokud je napsán pouze argument (např. comments), znamená to, že se jedná o argument typu boolean (může být true nebo false) a nezadává se s žádnou hodnotou. Zápis argument=hodnota znamená, že podmínka je true v případě, že hodnota argumentu se rovná zadané hodnotě.

Jednotlivé argumenty jsou pro přehlednost popsány v tabulce na zvláštní stránce.

Vícenásobné podmínky (AND a OR)

V argumentech podmínky je možné používat i vícero podmínek. Ty je možné kombinovat pomocí logických operátorů AND, OR a závorek.

Příklad:

<%if(podminka1 and (podminka2 or podminka3))%>
    Je splněna podmínka 1 a k tomu buďto podmínka 2 nebo 3.
<%endif%>