public function actionIndex()
 {
     $rr = new RequestResponse();
     $classComponent = \Yii::$app->request->get('component');
     $classComponentSettings = (string) \Yii::$app->request->get('settings');
     if ($classComponentSettings) {
         $classComponentSettings = unserialize(StringHelper::base64DecodeUrl($classComponentSettings));
     }
     /**
      * @var $component \skeeks\cms\relatedProperties\PropertyType;
      */
     $component = new $classComponent();
     try {
         $component->attributes = $classComponentSettings;
     } catch (\Exception $e) {
     }
     if (\Yii::$app->request->isAjax && !\Yii::$app->request->isPjax) {
         return $rr->ajaxValidateForm($component);
     }
     $forSave = "";
     if ($rr->isRequestPjaxPost()) {
         if ($component->load(\Yii::$app->request->post())) {
             \Yii::$app->session->setFlash('success', 'Сохранено');
             $forSave = StringHelper::base64EncodeUrl(serialize($component->attributes));
         } else {
             \Yii::$app->session->setFlash('error', 'Ошибка');
         }
     }
     return $this->render($this->action->id, ["component" => $component, "forSave" => $forSave]);
 }
Exemple #2
0
 public function processBeforeSave()
 {
     if ($this->component) {
         if ($this->scenario == static::SCENARIO_UPDATE_CONFIG) {
             $this->component_settings = unserialize(StringHelper::base64DecodeUrl($this->component_settings));
             /**
              * @var $propertyType PropertyType
              */
             $propertyTypeClassName = $this->component;
             $propertyType = new $propertyTypeClassName();
             $propertyType->attributes = $this->component_settings;
             $propertyType->initInstance();
             $this->property_type = $propertyType->code;
             $this->multiple = $propertyType->multiple;
             $this->component_settings = serialize($this->component_settings);
         }
     }
 }
Exemple #3
0
 /**
  * @param $value
  * @return $this
  */
 public function setComponentSettingsString($value)
 {
     $this->component_settings = unserialize(\skeeks\cms\helpers\StringHelper::base64DecodeUrl($value));
     return $this;
 }