Mit diesem Plugin können Sie den eingegebenen Wert asynchron per Ajax Request testen und validieren. Ist der angegebene Wert ungültig, wird er nicht gespeichert.
| Parameter-Name | Typ | Erforderlich | Beschreibung |
| func | String | Ja |
Die aufzurufende PHP Funktion. Diese muss true oder false zurückliefern. Falls ein String zurückgeliefert wird, wird dieser als Fehlermeldung angezeigt. |
| file | String | Nein |
Der Pfad zur PHP Datei, mit Ihren Funktionen. Wenn Sie keinen Pfad angeben, wird eine System eigene Datei verwendet, die allerdings nicht kundenspezifisch anpassbar ist. Deshalb wird die Verwendung dieses Parameters empfohlen. |
| value | String | Nein |
Der Standardwert. Ist der eingegebene Wert ungültig, wird dieser gesetzt. Dieser Standardwert wird ersetzt, sobald eine gültige Eingabe erfolgt. |
| pattern | Array | Nein |
Ein regulärer Ausdruck, mit dem der eingegebene Wert bereits vor dem Ajax Request validiert werden kann. Dieser Parameter besteht aus einem Array mit den Elementen pattern (regulärer Ausdruck) und invalid (der Fehlertext). |
| invalid | String | Nein |
Der anzuzeigende Fehlertext. Wird hier kein Text angegeben, ist nur optisch im Eingabefeld ein Fehler zu erkennen. |
Beispiel
In folgendem Beispiel ist als Eingabe nur "barfoo" erlaubt.
{input type="validate" name="foobar" title="Test" file="pub/theme/DESIGN/site/admin/validate.php" func="test"}
In Ihrer PHP Funktion erhalten Sie als ersten Parameter das Array $params, welches folgende Informationen beinhaltet:
| Parameter-Name | Typ | Beschreibung |
| site | String |
Der betroffene Mandant. |
| lang | String |
Die betroffene Sprache. |
| id | Integer |
Die betroffene ID. |
| value | String |
Der zu prüfende Wert. |
function test($params) {
return $params['value'] == 'barfoo';
}
Alternativ können Sie auch einen String als Rückgabewert zurückliefern. Dieser String wird dann als Fehlermeldung angezeigt. Ein leerer String als Rückgabewert wird als kein Fehler gewertet.
function test($params) {
if ($params['value'] != 'barfoo') {
return $GLOBALS['auth']->translate('In diesem Beispiel ist nur der Wert "barfoo" erlaubt');
}
return ''; // Kein Fehler
}
Sie können dieses Input Plugin auch in Kombination mit dem max_length Parameter nutzen.