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]); }
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); } } }
/** * @param $value * @return $this */ public function setComponentSettingsString($value) { $this->component_settings = unserialize(\skeeks\cms\helpers\StringHelper::base64DecodeUrl($value)); return $this; }