public function beforeValidate(Model $model, $options = array()) { if (array_key_exists($model->alias, $model->request->data)) { if (array_key_exists('contact_type_id', $model->data[$model->alias])) { $model->validator()->remove('value'); switch ($model->data[$model->alias]['contact_type_id']) { // 1 -> Mobile, 2 -> Phone, 3 -> Fax, 4 -> Email, 5 -> Other case '1': case '2': case '3': $model->validator()->add('value', 'required', array('rule' => 'Numeric', 'message' => $model->getErrorMessage('valuePhone'))); break; case '4': $model->validator()->add('value', 'required', array('rule' => array('email', true), 'message' => $model->getErrorMessage('valueEmail'))); break; default: // 5 -> Other $model->validator()->add('value', 'required', array('rule' => 'notEmpty', 'message' => $model->getErrorMessage('value'))); break; } } } $model->validator()->remove('name'); $model->validator()->add('name', 'required', array('rule' => 'notEmpty', 'message' => $model->getErrorMessage('value'))); $model->validator()->remove('contact_type_id'); $model->validator()->add('contact_type_id', 'required', array('rule' => 'notEmpty', 'message' => $model->getErrorMessage('contact_type_id'))); return parent::beforeValidate($model, $options); }
public function beforeValidate(Model $Model, $options = array()) { $roleModel = $this->settings[$Model->alias]['module']; $fieldModel = $roleModel . 'CustomField'; if (array_key_exists($Model->alias, $Model->data)) { $Model->validate = array('value' => array('size' => array('rule' => array('between', 1, 250), 'message' => $Model->getErrorMessage('btw1And250')))); } }
public function beforeValidate(Model $Model, $options = array()) { $this->roleModel = $this->settings[$Model->alias]['module']; $this->fieldModel = $this->roleModel . 'CustomField'; if (array_key_exists($Model->alias, $Model->data)) { if (array_key_exists(strtolower($this->roleModel) . '_custom_field_id', $Model->data[$Model->alias])) { $custom_field_id = $Model->data[$Model->alias][strtolower($this->roleModel) . '_custom_field_id']; $customFieldData = $Model->{$this->fieldModel}->find('first', array('recursive' => -1, 'fields' => array($this->fieldModel . '.type', $this->fieldModel . '.is_mandatory', $this->fieldModel . '.is_unique', $this->fieldModel . '.id'), 'conditions' => array('id' => $custom_field_id))); $this->fieldId = $customFieldData[$this->fieldModel]['id']; $this->fieldType = $customFieldData[$this->fieldModel]['type']; $is_mandatory = $customFieldData[$this->fieldModel]['is_mandatory']; $is_unique = $customFieldData[$this->fieldModel]['is_unique']; $this->valueVariable = $Model->{$this->fieldModel}->getValueNameFromType($this->fieldType); switch ($this->fieldType) { case '1': $Model->validate = array('text_value' => array('size' => array('rule' => array('between', 0, 250), 'message' => $Model->getErrorMessage('under250')))); break; case '2': $Model->validate = array(); break; case '3': $Model->validate = array('text_value' => array('rule' => array('naturalNumber', true), 'allowEmpty' => true, 'message' => $Model->getErrorMessage('naturalNumber'))); break; case '4': $Model->validate = array(); default: $Model->validate = array(); break; } } if ($is_mandatory) { $Model->validate[$this->valueVariable]['required']['rule'] = 'notEmpty'; $Model->validate[$this->valueVariable]['required']['message'] = $Model->getErrorMessage('required'); } // in the case of 2. text area and 4. select... do not check for unique if ($is_unique && $Model->{$this->fieldModel}->hasIsUnique($this->fieldType)) { $Model->validate[$this->valueVariable]['unique']['rule'] = 'isUniqueValue'; $Model->validate[$this->valueVariable]['unique']['message'] = $Model->getErrorMessage('unique'); } } }