La directive if est fournie par le module d'extension conditional.

Cette directive permet de faire dépendre l'affichage de texte d'une condition donnée. Par exemple :

[[!if  test="enabled(smiley)"
      then="Le greffon smiley est activé :-)"
      else="Pas de greffon smiley ici..."]]

Si le test réussit, le texte du paramètre then est affiché. Sinon, le texte du paramètre else est affiché. La partie else du test est facultative.

Les valeurs de then et else peuvent inclure n'importe quelle balise qui serait autorisée dans les pages du wiki. Tripler les guillemets autour de la valeur permet même d'y inclure des guillemets.

Le test est une spécification PageSpec. Si une page correspond à l'expression, le test réussit. Vous pouvez ainsi tester l'existence d'une page ou de plusieurs, tester la date de création, etc.

Si vous voulez confronter l'expression PageSpec uniquement à la page qui contient la condition plutôt qu'à toutes les pages du wiki, il faut donner la valeur "no" au paramètre "all".

Dans une directive if, la syntaxe normale d'une spécification PageSpec est étendue avec les tests suivants :

  • enabled(greffon)

    Ce test vérifie si le greffon indiqué est activé.

  • sourcepage(motif)

    Ce test confronte le motif donné au nom de la page qui contient la condition.

  • destpage(motif)

    Ce test confronte le motif donné au nom de la page qui est construite. Ce nom peut être différent du nom de la page qui contient la condition, si la page est reliée à une autre page.

  • 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.