kann mir jemand erklären, wie die XFORM-Validation "customfunction" funktioniert?
Code: Alles auswählen
validate|customfunction|label|functionname|weitere_parameter|warning_message
Code: Alles auswählen
validate|customfunction|label|functionname|weitere_parameter|warning_message
Die Funktion muss so aussehen:cukabeka hat geschrieben:kann mir jemand erklären, wie die XFORM-Validation "customfunction" funktioniert?
Code: Alles auswählen
validate|customfunction|label|functionname|weitere_parameter|warning_message
Code: Alles auswählen
function foo($_label, $_value, $_additional_param)
{
// $_label: Name des XForm-Felds
// $_value: (eingegebener) Wert des XForm-Felds
// $_additional_param: Zusätzlicher Parameter, mit dem du z. B. das Verhalten der Funktion steuern kannst. Du kannst ihn aber natürlich auch ignorieren, wenn du ihn nicht brauchst.
// return: true oder false bzw. wird der Rückgabewert durch ein if boolesch ausgewertet. Wenn der Wert false ist, wird die Fehlermeldung ausgegeben.
}
Dafür würde ich ganz einfach die preg_match-Validate-Klasse nehmen. Falls du die für eine XForm-Tabelle brauchst, einfach folgende Methode mit in die Klasse übernehmen:cukabeka hat geschrieben:Ich möchte zB prüfen, ob ein Passwort mindestens 6 Zeichen lang ist und mindestens eine Zahl und einen Großbuchstaben aufweist. Ginge das damit?
Code: Alles auswählen
function getDefinitions()
{
return array(
'type' => 'validate',
'name' => 'preg_match',
'values' => array(
array( 'type' => 'getName', 'label' => 'Name' ),
array( 'type' => 'text', 'label' => 'Regex'),
array( 'type' => 'text', 'label' => 'Fehlermeldung'),
),
'description' => 'preg_match',
);
}
Code: Alles auswählen
preg_match|password|~^.{6,}$~|Das Passwort muss mindestens 6 Zeichen lang sein.
preg_match|password|~^(.*\d.*[A-Z].*|.*[A-Z].*\d.*)$~|Das Passwort muss mindestens einen Großbuchstaben und eine Zahl enthalten.
wenn ich in der funktion einfach definiereXong hat geschrieben:Hi Stefan!Die Funktion muss so aussehen:cukabeka hat geschrieben:kann mir jemand erklären, wie die XFORM-Validation "customfunction" funktioniert?
Code: Alles auswählen
validate|customfunction|label|functionname|weitere_parameter|warning_message
Code: Alles auswählen
function foo($_label, $_value, $_additional_param) { // $_label: Name des XForm-Felds // $_value: (eingegebener) Wert des XForm-Felds // $_additional_param: Zusätzlicher Parameter, mit dem du z. B. das Verhalten der Funktion steuern kannst. Du kannst ihn aber natürlich auch ignorieren, wenn du ihn nicht brauchst. // return: true oder false bzw. wird der Rückgabewert durch ein if boolesch ausgewertet. Wenn der Wert false ist, wird die Fehlermeldung ausgegeben. }
Code: Alles auswählen
function validate_age ($param1,$param2,$param3,$param4) {
return false;
}
Jetzt war ich auch mal neugierig:cukabeka hat geschrieben:Hallo,
wirft das bei mir immer noch keinen Fehler, sondern wird einfach ignoriert. Gibt es irgendwo ein Beispiel für eine funktionierende Customfunction-Klasse?
Code: Alles auswählen
function validate_test ($label,$value,$param) {
if($value == 1) { return true; } else { return false; };
}
Code: Alles auswählen
Priorität ---
Name: name
Name der Funktion: validate_test
Weitere Parameter: "test"
Fehlermeldung: Überprüfen Sie Ihre Eingabe im Feld "Name"