Vom: 12.06.2012

Pimcore: Formulare mit dem Formbuilder erstellen und mit eigenen Validatoren prüfen

Das Formbuilder Plugin erweitert Pimcore um die Möglichkeit, komfortabel Formulare zu erzeugen. Damit einhergehend ist ein umfangreicher Satz an Filtern und Validatoren, die so gut wie alle Fälle abdecken um die Eingabe der Formularwerte zu prüfen. Dennoch kann es aber vorkommen, dass etwas geprüft werden muss was mit den vorgesehenen Validatoren nicht abgedeckt ist. Als Beispiel ist bei uns die Prüfung auf einen bereits bestehendes Login bei der Registrierung von Usern aufgekommen. Anforderung bei Erstellung eines neuen Useraccounts ist es, zu prüfen ob das Login bereits existiert. Hierzu muss in unserem Fall der Datenbestand auf Existenz des Logins geprüft werden. Dies erreichen wir in unserem Fall am Besten mit dem Callback Validator Dazu erstellt man in einer geeigneten Klasse eine statische Methode mit mindestens einem Parameter, der dann den zu prüfenden Wert enthält. Wir haben diese Methode im RegisterController untergebracht.

class RegisterController extends Website_Controller_Action {

  public static function checkLogin($login) {
  	$newkey = Pimcore_File::getValidFilename($login);
	$entries = new Object_Login_List();
	$entries ->setCondition("o_key = ".$entries->quote($newkey)
	return sizeof($entries) == 0;
  }

Der Klassen- und Methodenname muss nur noch im Callback-Validator hinterlegt werden.