required = $required; } /** * Creates the client side validation from form fields * which is generated at the header of each page */ function javascript() { $code = ''; $fields = $this->form->Fields(); foreach($fields as $field){ //if the field type has some special specific specification for validation of itself $valid = $field->jsValidation(); if($valid){ $code .= $valid; } } if(is_array($this->required)){ foreach($this->required as $field) { if(is_array($field) && isset($field['js'])){ $code .= $field['js'] . "\n"; }else if($fields->dataFieldByName($field)) { $code .= " require('$field');\n"; //Tabs for output tabbing :-) } } }else{ USER_ERROR("CustomRequiredFields::requiredfields is not set / not an array",E_USER_WARNING); } return $code; } /** * Creates the server side validation from form fields * which is executed on form submission */ function php($data) { $fields = $this->form->Fields(); $valid = true; foreach($fields as $field) { $valid = ($field->validate($this) && $valid); } if($this->required){ foreach($this->required as $key => $fieldName) { if(is_string($fieldName)) $formField = $fields->dataFieldByName($fieldName); if(is_array($fieldName) && isset($fieldName['php'])){ eval($fieldName['php']); }else if($formField) { // if an error is found, the form is returned. if(!$data[$fieldName] || preg_match('/^\s*$/', $data[$fieldName])) { $this->validationError( $fieldName, sprintf(_t('Form.FIELDISREQUIRED', "%s is required."), $formField->Title()), "required" ); return false; } } } } return $valid; } /** * allows you too add more required fields to this object after construction. */ function appendRequiredFields($requiredFields){ $this->required = array_merge($this->required,$requiredFields->getRequired()); } } ?>