public function validate(Validation $array, $save = FALSE) { // uses PHP trim() to remove whitespace from beginning and end of all fields before validation $array->pre_filter('trim'); $this->unvalidatedFields = array('survey_attribute_id', 'website_id', 'default_text_value', 'default_float_value', 'default_int_value', 'default_date_start_value', 'default_date_end_value', 'default_date_type_value', 'control_type_id'); return parent::validate($array, $save, array()); }
public function validate(Validation $array, $save = FALSE) { // uses PHP trim() to remove whitespace from beginning and end of all fields before validation $array->pre_filter('trim'); // merge unvalidated fields, in case the subclass has set any. if (!isset($this->unvalidatedFields)) { $this->unvalidatedFields = array(); } $this->unvalidatedFields = array_merge($this->unvalidatedFields, array('validation_rules', 'public', 'multi_value', 'deleted')); $array->add_rules('caption', 'required'); $array->add_rules('data_type', 'required'); if (array_key_exists('data_type', $array->as_array()) && $array['data_type'] == 'L') { if (empty($array['termlist_id'])) { $array->add_rules('termlist_id', 'required'); } else { array_push($this->unvalidatedFields, 'termlist_id'); } } $array->add_rules('system_function', 'length[1,30]'); $parent_valid = parent::validate($array, $save); // clean up cached required fields in case validation rules have changed $cache = Cache::instance(); $cache->delete_tag('required-fields'); if ($save && $parent_valid) { // clear the cache used for attribute datatype and validation rules since the attribute has changed $cache = new Cache(); // Type is the object name with _attribute stripped from the end $type = substr($this->object_name, 0, strlen($this->object_name) - 10); $cache->delete('attrInfo_' . $type . '_' . $this->id); } return $save && $parent_valid; }