Input Plugins, über die man eine Seite auswählen kann, wie z. B. Link, Image, Folder und Combo, können die auswählbaren Seiten einschränken. Das kann bereits über den Seitentyp erfolgen, welcher mit dem Parameter type_regex oder type_regex_exclude einem regulären Ausdruck entsprechen muss. Beispiel:
{input type="link" name="test" title="Test" type_regex="~^multimedia/(file|image)$~"}
In diesem Beispiel sind nur Seitentypen erlaubt, die den Seitentyp multimedia/file oder multimedia/image haben. Verwendet man stattdessen den Parameter type_regex_exclude, wird die Prüfung umgekehrt.
Zusätzlich kann auch der Parameter filter genutzt werden, um ein oder mehrere (Extra-)Felder zu prüfen. Die Schreibweise der Bedingungen folgt dabei bestimmten Mustern. Beispiel:
{* Das Feld "title" muss gesetzt sein *}
{input type="link" name="test" title="Test" filter="title"}
{* Das Feld "title" darf nicht gesetzt sein *}
{input type="link" name="test" title="Test" filter="!title"}
Falls Sie ein Extrafeld abfragen wollen, verwenden Sie das Prefix extra.* für den Schlüssel. Beispiel:
{* Das Extrafeld "foo.bar" muss gesetzt sein *}
{input type="link" name="test" title="Test" filter="extra.foo.bar"}
{* Das Extrafeld "foo.bar" darf nicht gesetzt sein *}
{input type="link" name="test" title="Test" filter="!extra.foo.bar"}
Verwenden Sie die Punkt-Notation, um verschachtelte Felder zu prüfen.
Sie können auch auf bestimmte Werte prüfen und dafür folgende Operatoren verwenden:
=: Das Feld entspricht dem angegebenen Wert.!=: Das Feld entspricht nicht dem angegebenen Wert.>: Das Feld ist größer als der angegebene Wert.>=: Das Feld ist größer-gleich als der angegebene Wert.<: Das Feld ist kleiner als der angegebene Wert.<=: Das Feld ist kleiner-gleich als der angegebene Wert.~: Das Feld entspricht dem regulären Ausdruck.!~: Das Feld entspricht nicht dem regulären Ausdruck.
Bei regulären Ausdrücken müssen Sie die Delimiter angeben. Optionen können Sie ebenfalls setzen. Bitte beachten Sie, dass die regulären Ausdrücke den PHP Regeln folgen müssen. Beispiel:
{* Das Feld "title" muss mit dem Text "test" beginnen (die Groß- und Kleinschreibung ist egal) *}
{input type="link" name="test" title="Test" filter="title ~ /^test/i"}
Sie können Bedingungen auch miteinander verknüpfen. Nutzen Sie dafür AND und OR (die Groß- und Kleinschreibung ist egal). Alternativ können Sie auch && und || verwenden. Beispiel:
{* Das Feld "title" muss gesetzt sein, aber das Extrafeld "foo.bar" nicht *}
{input type="link" name="test" title="Test" filter="title and !extra.foobar"}
{* Alternative Schreibweise *}
{input type="link" name="test" title="Test" filter="title && !extra.foobar"}
Bei der Auswertung von verknüpften Bedingungen wird zunächst nach OR geteilt und in den jeweiligen Segmenten alle AND Segmente geprüft. Eine Verknüpfung mit Gruppen über Klammern wird nicht unterstützt.
Für zu prüfende Werte können auch einfache oder doppelte Hochkommata gesetzt werden. Außerdem funktionieren die Operatoren auch für z. B. Datumsangaben, da immer ein String-Vergleich durchgeführt wird.