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