示例#1
0
 /**
  * (non-PHPdoc)
  * @see ModelForm::setAttributes()
  */
 public function setAttributes($values, $safeOnly = true)
 {
     $nonDyanmicAttributeValues = array();
     foreach ($values as $name => $value) {
         if ($this->doesNameResolveNameForDelimiterSplit($name)) {
             $this->{$name} = $value;
         } else {
             $nonDyanmicAttributeValues[$name] = $value;
         }
     }
     //Dropdowns can be searched on as mulit-selects.  This below foreach resolves the issue of needing to show
     //multiple values in the dropdown.
     foreach ($values as $name => $value) {
         if ($value != null && $this->model->isAttribute($name) && $this->model->isRelation($name)) {
             $relationModelClassName = $this->model->getRelationModelClassName($name);
             if ($relationModelClassName == 'CustomField' || is_subclass_of($relationModelClassName, 'CustomField') && isset($value['value']) && is_array($value['value']) && count($value['value']) > 0) {
                 $this->model->{$name}->value = $value['value'];
             }
         }
     }
     parent::setAttributes($nonDyanmicAttributeValues, $safeOnly);
 }
示例#2
0
 /**
  * Override to handle userStatus validation
  * @param User | ModelForm $model
  * @param string $postVariableName
  */
 protected function attemptToValidateAjaxFromPost($model, $postVariableName)
 {
     if (isset($_POST['ajax']) && $_POST['ajax'] == 'edit-form') {
         $model->setAttributes($_POST[$postVariableName]);
         $model->validate();
         $userStatus = UserStatusUtil::makeByPostData($_POST[$postVariableName]);
         if ($model instanceof User) {
             if ($userStatus == null) {
                 $userStatus = UserStatusUtil::makeByUser($model);
             }
             Yii::app()->licenseManager->resolveValidationOnCreateOrEditUser($model, $userStatus);
         } elseif ($model instanceof ModelForm) {
             if ($userStatus == null) {
                 $userStatus = UserStatusUtil::makeByUser($model->getModel());
             }
             Yii::app()->licenseManager->resolveValidationOnCreateOrEditUser($model->getModel(), $userStatus);
         }
         $errorData = ZurmoActiveForm::makeErrorsDataAndResolveForOwnedModelAttributes($model);
         echo CJSON::encode($errorData);
         Yii::app()->end(0, false);
     }
 }