protected function validateAttribute($model, $attributeName) { $value = $model->{$attributeName}; if ($this->allowEmpty && $this->isEmpty($value)) { return; } parent::validateAttribute($model, $attributeName); if ($this->precision !== null) { assert('is_int($this->precision)'); if ($value - round($value, $this->precision) != 0) { $message = $this->tooPrecise !== null ? $this->tooPrecise : Zurmo::t('Core', '{attribute} is too precise (maximum decimal places is {precision}).'); $this->addError($model, $attributeName, $message, array('{precision}' => $this->precision)); } } }
/** * 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); // } }*/ }