skeeks\cms\controllers\AdminCmsContentElementController::eachRelatedProperties PHP Method

eachRelatedProperties() public method

public eachRelatedProperties ( $model, $action )
    public function eachRelatedProperties($model, $action)
    {
        try {
            $formData = [];
            parse_str(\Yii::$app->request->post('formData'), $formData);
            if (!$formData) {
                return false;
            }
            if (!($content_id = ArrayHelper::getValue($formData, 'content_id'))) {
                return false;
            }
            if (!($fields = ArrayHelper::getValue($formData, 'fields'))) {
                return false;
            }
            /**
             * @var CmsContent $content
             */
            $content = CmsContent::findOne($content_id);
            if (!$content) {
                return false;
            }
            $element = $content->createElement();
            $relatedProperties = $element->relatedPropertiesModel;
            $relatedProperties->load($formData);
            /**
             * @var $model CmsContentElement
             */
            $rpForSave = $model->relatedPropertiesModel;
            foreach ((array) ArrayHelper::getValue($formData, 'fields') as $code) {
                if ($rpForSave->hasAttribute($code)) {
                    $rpForSave->setAttribute($code, ArrayHelper::getValue($formData, 'RelatedPropertiesModel.' . $code));
                }
            }
            return $rpForSave->save(false);
        } catch (\Exception $e) {
            return false;
        }
    }