Direktiva if je poskytována modulem conditional.

Pomocí této direktivy můžete na stránce zobrazovat text v závislosti na splnění nějaké podmínky. Například:

[[!if  test="enabled(smiley)"
      then="Modul smiley je povolen :-)"
      else="Bez modulu smiley..."]]

Pokud je zadaný test splněn, zobrazí se text v parametru then, jinak se zbobrazí text v parametru else. Parametr else je volitelný.

Hodnoty v parametrech then a else mohou obsahovat libovolné značky, které jsou povoleny na běžné wiki stránce. Trojité uvozovky dokonce umožňují použít uvnitř hodnoty (anglické) uvozovky.

test je vlastně PageSpec. Pokud vyhovuje alespoň jedna stránka, test uspěl. Můžete tak testovat přítomnost stránky nebo stránek, zjišťovat, jestli byly nějaké stránky vytvořeny v daném měsíci, a podobně.

Chcete-li, aby se PageSpec testovalo pouze na stránce obsahující podmínku a ne na všech stránkách ve wiki, nastavte parametr „all“ na hodnotu „no“.

V direktivě if je běžná syntaxe PageSpec rozšířena o následující testy:

  • enabled(modul)

    Testuje, zda je zadaný modul povolen.

  • sourcepage(vzor)

    Testuje, zda se vzor shoduje s názvem stránky, která obsahuje podmínku.

  • destpage(vzor)

    Testuje zda se vzor shoduje s názvem stránky, která se právě sestavuje. To může být odlišné od názvu stránky, která obsahuje podmínku, např. pokud je stránka vložena do jiné stránky.

  • included()

    Tests whether the page is being included onto another page, for example via inline or map. Note that pages inserted into other pages via template are not matched here.