protected function validateAttribute($model, $attributeName)
 {
     if ($model->isRelation($attributeName)) {
         if ($this->requiredValue !== null) {
             if ($this->message !== null) {
                 throw new NotImplementedException();
                 // TODO
                 $message = $this->message;
             } else {
                 $message = Yii::t('yii', '{attribute} must be {value}.', array('{value}' => $this->requiredValue));
             }
             $this->addError($model, $attributeName, $message);
         }
         if ($model->{$attributeName} instanceof CustomField) {
             if ($model->{$attributeName}->value == null) {
                 if ($this->message !== null) {
                     $message = $this->message;
                 } else {
                     $message = Yii::t('yii', '{attribute} cannot be blank.');
                 }
                 $this->addError($model, $attributeName, $message);
             }
         } elseif ($model->{$attributeName} instanceof FileContent) {
             if ($model->{$attributeName}->content === null) {
                 if ($this->message !== null) {
                     $message = $this->message;
                 } else {
                     $message = Yii::t('yii', '{attribute} cannot be blank.');
                 }
                 $this->addError($model, $attributeName, $message);
             }
         } elseif ($model->{$attributeName}->id <= 0 && !$model->{$attributeName}->isModified() || !$model->{$attributeName}->validate()) {
             if ($this->message !== null) {
                 $message = $this->message;
             } else {
                 $message = Yii::t('yii', '{attribute} cannot be blank.');
             }
             $this->addError($model, $attributeName, $message);
         }
     } else {
         parent::validateAttribute($model, $attributeName);
     }
 }
 protected function validateAttribute($model, $attributeName)
 {
     if ($model::isRelation($attributeName)) {
         if ($this->requiredValue !== null) {
             if ($this->message !== null) {
                 throw new NotImplementedException();
                 // TODO
                 $message = $this->message;
             } else {
                 $message = Zurmo::t('Core', '{attribute} must be {value}.', array('{value}' => $this->requiredValue));
             }
             $this->addError($model, $attributeName, $message);
         }
         if ($model->{$attributeName} instanceof CustomField) {
             if ($model->{$attributeName}->value == null) {
                 if ($this->message !== null) {
                     $message = $this->message;
                 } else {
                     $message = Zurmo::t('Core', '{attribute} cannot be blank.');
                 }
                 $this->addError($model, $attributeName, $message);
             }
         } elseif ($model->{$attributeName} instanceof MultipleValuesCustomField) {
             $multipleValues = $model->{$attributeName}->getValues();
             if (count($multipleValues) == 0 || count($multipleValues) == 1 && $multipleValues[0] == '') {
                 if ($this->message !== null) {
                     $message = $this->message;
                 } else {
                     $message = Zurmo::t('Core', '{attribute} cannot be blank.');
                 }
                 $this->addError($model, $attributeName, $message);
             }
         } elseif ($model->{$attributeName} instanceof FileContent) {
             if ($model->{$attributeName}->content === null) {
                 if ($this->message !== null) {
                     $message = $this->message;
                 } else {
                     $message = Zurmo::t('Core', '{attribute} cannot be blank.');
                 }
                 $this->addError($model, $attributeName, $message);
             }
         } elseif ($model->{$attributeName}->id <= 0 && !$model->{$attributeName}->isModified()) {
             if ($this->message !== null) {
                 $message = $this->message;
             } else {
                 $message = Zurmo::t('Core', '{attribute} cannot be blank.');
             }
             $this->addError($model, $attributeName, $message);
         } elseif (!$model->{$attributeName}->validate()) {
             if ($this->message !== null) {
                 $message = $this->message;
             } else {
                 $message = Zurmo::t('Core', 'There was a problem validating {attribute}.');
             }
             $this->addError($model, $attributeName, $message);
         }
     } else {
         parent::validateAttribute($model, $attributeName);
     }
 }
Beispiel #3
0
 /**
  * Checks config
  * This is the 'checkConfig' validator as declared in rules().
  */
 public function checkConfig($attribute, $params)
 {
     //if owner_name class exists in configuration
     if (count($this->config) === 0) {
         if ($attribute === 'owner_name') {
             $this->addError($attribute, Yii::t('CommentsModule.msg', 'This item cann\'t be commentable'));
         }
         return;
     }
     //if only registered users can post comments
     if ($attribute === 'creator_id' && ($this->config['registeredOnly'] === true || Yii::app()->user->isGuest === false)) {
         unset($this->user_email, $this->user_name);
         $numberValidator = new CNumberValidator();
         $numberValidator->allowEmpty = false;
         $numberValidator->integerOnly = true;
         $numberValidator->attributes = array('creator_id');
         $numberValidator->validate($this);
     }
     //if se captcha validation on posting
     if ($attribute === 'verifyCode' && $this->config['useCaptcha'] === true) {
         $captchaValidator = new CCaptchaValidator();
         $captchaValidator->caseSensitive = false;
         $captchaValidator->captchaAction = Yii::app()->urlManager->createUrl(CommentsModule::CAPTCHA_ACTION_ROUTE);
         $captchaValidator->allowEmpty = !CCaptcha::checkRequirements();
         $captchaValidator->attributes = array('verifyCode');
         $captchaValidator->validate($this);
     }
     //if not only registered users can post comments and current user is guest
     if (($attribute === 'user_name' || $attribute === 'user_email') && ($this->config['registeredOnly'] === false && Yii::app()->user->isGuest === true)) {
         unset($this->creator_id);
         $requiredValidator = new CRequiredValidator();
         $requiredValidator->attributes = array($attribute);
         $requiredValidator->validate($this);
         $stringValidator = new CStringValidator();
         $stringValidator->max = 128;
         $stringValidator->attributes = array($attribute);
         $stringValidator->validate($this);
         if ($attribute === 'user_email') {
             $emailValidator = new CEmailValidator();
             $emailValidator->attributes = array('user_email');
             $emailValidator->validate($this);
         }
     }
 }