Validierung von Usereingaben bei Nodes
Hintergrund:
Ich habe einen Node-Typ mit CCK erstellt und möchte die Eingabe der User beim Anlegen und Bearbeiten überprüfen.
In meinem Beispiel geht es um Telefonanrufe. Es wird erfasst aus welchem Ort und Landkreis die Anrufe eingehen.
Manchmal ist das unbekannt. Dann kann bei Landkreis "keine Angabe" stehen und Ort bleibt leer.
Sobald in Ort etwas eingetragen ist, soll das aber nicht mehr möglich sein.
Allgemein:
Ich habe zur Validierung hook_nodeapi() benutzt. Theoretisch müsste es auch eine Lösung im Rahmen der Form-API und einer
Validate-Funktion geben. Allerdings hat das für CCK nicht funktioniert.
Meine Funktion steht in einem eigenen Mini-Modul namens sitehelper.
Ergänzend:
Was ist ein hook?
Wie schreibt man ein Modul?
Siehe auch das Modul Validation API
Code:
<?php
function sitehelper_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {
if($node->type == 'anruf') {
// Kommentare entfernen um die Ausgabe des Node-Objects zu sehen
//print '<pre>';
//print_r($node);
//print '</pre>';
switch ($op) {
case 'view':
break;
case 'validate':
// FEHLER falls in Ort was eingetragen wird und Landkreis bleibt bei "keine Angabe"
$ort = $node->field_ort[0][value];
$landkreis = $node->field_landkreis[0][value];
if(($ort != '') && ($landkreis == 'keine Angabe')) {
form_set_error('field_landkreis', 'Landkreis: Unerlaubter Wert da Ort nicht leer');
}
break;
case 'delete':
break;
}
}
}
?>
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 1 Tag 3 Stunden
vor 2 Tagen 21 Stunden
vor 2 Tagen 22 Stunden
vor 3 Tagen 2 Stunden
vor 3 Tagen 9 Stunden
vor 4 Tagen 22 Stunden
vor 6 Tagen 29 Minuten
vor 6 Tagen 2 Stunden
vor 1 Woche 2 Tagen
vor 1 Woche 2 Tagen