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; } }