Die if-Anweisung wird durch die conditional-Erweiterung bereitgestellt.

Mit dieser Anweisung kann die Anzeige von Text an bestimmte Bedingungen geknüpft werden. Zum Beispiel:

[[!if  test="enabled(smiley)"
      then="Die smiley-Erweiterung ist aktiviert :-)"
      else="Hier gibt es keine smiley-Erweiterung …"]]

Wenn der angegebene test erfolgreich ist, wird der then-Text angezeigt, sonst der else-Text. Der else-Teil ist optional.

Die Werte für then und else können beliebige Formatierungsanweisungen enthalten, die außerhalb der Anweisung erlaubt wären. Werten die Werte durch dreifache Anführungszeichen abgetrennt, können sie sogar Anführungszeichen enthalten.

Der test ist eine PageSpec; wenn sie auf irgendeine Seite im Wiki passt, hat der Test Erfolg. Dadurch kann man die Existenz einer oder mehrerer Seiten überprüfen, überprüfen ob in einem bestimmten Monat Seiten angelegt wurden, und so weiter.

Wenn die PageSpec nur auf die aktuelle Seite angewendet werden soll, die die Bedingung enthält (und nicht auf alle Seiten im Wiki), kann der optionale all-Parameter auf no gesetzt werden.

In einer if-Anweisung sind neben der regulären PageSpec-Syntax die folgenden zusätzlichen Test verfügbar:

  • enabled(plugin)

    Prüft, ob die angegebene Erweiterung aktiviert ist.

  • sourcepage(glob)

    Prüft, ob das angegebene Muster auf den Namen der Seite passt, die die Bedingung enthält.

  • destpage(glob)

    Prüft, ob das Muster auf den namen der Seite passt, die gerade erzeugt wird. Dies kann ein anderer Name sein als der der Seite, die die Bedingung enthält, wenn diese über inline in eine andere Seite eingebunden wird.

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