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 11 Stunden
vor 1 Tag 12 Stunden
vor 1 Tag 13 Stunden
vor 1 Tag 13 Stunden
vor 1 Tag 14 Stunden
vor 1 Tag 20 Stunden
vor 1 Tag 21 Stunden
vor 2 Tagen 13 Minuten
vor 2 Tagen 1 Stunde
vor 2 Tagen 9 Stunden