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); } }
/** * 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); } } }