Example #1
0
 private static function validateSubmission($formID, $field, $value = NULL, $objectID)
 {
     if ($field['type'] == "fieldset" || $field['disabled'] == "true") {
         return NULL;
     }
     // If the IDNO is managed by the system, skip it:
     if ($field['type'] == "idno" && $field['managedBy'] != "user") {
         return NULL;
     }
     if (strtolower($field['required']) == "true" && (isnull($value) || !isset($value) || isempty($value))) {
         errorHandle::newError(__METHOD__ . "() - missing", errorHandle::DEBUG);
         errorHandle::errorMsg("Missing data for required field '" . $field['label'] . "'.");
         return FALSE;
     }
     // Perform validations here
     $valid = TRUE;
     if (!empty($field['format'])) {
         if (strtolower($field['format']) == 'characters' || strtolower($field['format']) == 'digits') {
             if (!empty($field['min']) && $field['min'] > strlen($value)) {
                 $valid = FALSE;
             }
             if (!empty($field['max']) && $field['max'] < strlen($value)) {
                 $valid = FALSE;
             }
         } else {
             if (strtolower($field['format']) == 'words') {
                 if (!empty($field['min']) && $field['min'] > str_word_count($value)) {
                     $valid = FALSE;
                 }
                 if (!empty($field['max']) && $field['max'] < str_word_count($value)) {
                     $valid = FALSE;
                 }
             }
         }
     }
     // Skip if it's already invalid
     if ($valid === TRUE) {
         // No validation to test
         if (isempty($field['validation']) || $field['validation'] == "none") {
             $valid = TRUE;
         } else {
             if (!str2bool($field['required']) && is_empty($value)) {
                 $valid = TRUE;
             } else {
                 $valid = FALSE;
                 if (validate::isValidMethod($field['validation']) === TRUE) {
                     if ($field['validation'] == "regexp") {
                         $valid = validate::$field['validation']($field['validationRegex'], $value);
                     } else {
                         $valid = validate::$field['validation']($value);
                     }
                 }
             }
         }
     }
     if ($valid === FALSE) {
         errorHandle::newError(__METHOD__ . "() - data", errorHandle::DEBUG);
         errorHandle::errorMsg("Invalid data provided in field '" . $field['label'] . "'.");
         return FALSE;
     }
     // Duplicate Checking (Form)
     if (strtolower($field['duplicates']) == "true") {
         if (self::isDupe($formID, $field['name'], $value, $objectID)) {
             errorHandle::newError(__METHOD__ . "() - Dupe -- " . $field['name'], errorHandle::DEBUG);
             errorHandle::errorMsg("Duplicate data (in form) provided in field '" . $field['label'] . "'.");
             return FALSE;
         }
     }
     if (!is_empty(mfcs::$engine->errorStack)) {
         return FALSE;
     } else {
         return TRUE;
     }
 }