Validatoren

From Limbas Wiki

Revision as of 12:30, 20 December 2021 by Axel Westhagen (talk | contribs)

Jump to: navigation, search

<-- zurück zu Admin-Dokumentation / <-- zurück zur Hauptseite



Mit Hilfe von Validatoren lassen sich Eingaben in Datenfeldern vor dem speichern in die Datenbank prüfen. Limbas bietet dazu mehrere Möglichkeiten.

Regulären Ausdrücke

Die Einfachste Möglichkeit besteht darin Die Regulären Ausdrücke der Feldtypen Feldtypen zu nutzen. Dazu wird für jeden Feldtyp der hinterlegte reguläre Ausdruck im Formular (JavaScript) sowie auf Server Seite (PHP) angewendet um den Inhalt auf Richtigkeit zu prüfen. Diese Funktionalität ist standardmäßig integriert. Die Regulären Ausdrücke sind anpassbar.

Rechte

Über die Gruppenrechte Gruppenrechte können pro Feld Schreibrechte nach eigenen Kriterien erstellt werden. Diese Rechte überprüfen ob überhaupt in ein Feld geschrieben werden darf. Somit sind sie für nur für eine Vorab-Überprüfungen geeignet.

Trigger

Trigger Trigger sind der klassische Weg für Validierungen. Dazu kann ein Datenbanktrigger sowie ein Limbas PHP Trigger die Eingaben überprüfen und das speichern unterbinden.

Validator Funktion

Die komfortableste Möglichkeit nutzt eine Validator Funktion um die eingegeben Werte zu überprüfen. Dazu muß eine Funktion "lmb_ValidatePostRequest($params[Array])" in einer Extension Datei wie z.B ext_gtab.inc existieren. Zusätzlich muß die Prüfen pro Tabelle in den Tabelleneinstellungen über den Punkt "Validierungsprüfung" aktiviert werden. Falls beide Punkte zutreffen wird vor dem speichern des Formulars eine Vorabanfrage mit dem kompletten Inhalt des Formulars an die Funktion gesendet. Der Inhalt des Arrays ($params) muß explizit ausgewertet werden. Es bietet sich an in der Funktion nach den Kriterien wie z.B. welche Tabelle oder welches Formular oder Usergruppe eine eigene Struktur mit Unterfunktionen oder Klassen zu erstellen. Der Rückgabewert ist ein Array welches den status und value beinhaltet. Folgende Stati sind möglich:

  • true // wird ohne Rückfrage gespeichert
  • false // wie notice
  • notice // wird nach Hinweis gespeichert
  • alert // wie nach Hinweis nicht gespeichert
  • confirm // wird nach Nachfrage gespeichert
  • submit // wie true

Beispiel

function lmb_ValidatePostRequest(&$params){
 if($params['gtabid'] == 2 && $params['formid'] == 1){
   if(is_numeric($params['gtabid'][g_2_1])){
      return true;
   }else{
      return array('status'=>'alert', 'value'=>'Es können nur Zahlen gespeichert werden!')
   }
 }
}