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

getColumnsByContent() public static method

public static getColumnsByContent ( CmsContent $cmsContent = null, $dataProvider = null ) : array
$cmsContent skeeks\cms\models\CmsContent
return array
    public static function getColumnsByContent($cmsContent = null, $dataProvider = null)
    {
        $autoColumns = [];
        if (!$cmsContent) {
            return [];
        }
        $model = CmsContentElement::find()->where(['content_id' => $cmsContent->id])->one();
        if (!$model) {
            $model = new CmsContentElement(['content_id' => $cmsContent->id]);
        }
        if (is_array($model) || is_object($model)) {
            foreach ($model as $name => $value) {
                $autoColumns[] = ['attribute' => $name, 'visible' => false, 'format' => 'raw', 'class' => \yii\grid\DataColumn::className(), 'value' => function ($model, $key, $index) use($name) {
                    if (is_array($model->{$name})) {
                        return implode(",", $model->{$name});
                    } else {
                        return $model->{$name};
                    }
                }];
            }
            $searchRelatedPropertiesModel = new \skeeks\cms\models\searchs\SearchRelatedPropertiesModel();
            $searchRelatedPropertiesModel->initProperties($cmsContent->cmsContentProperties);
            $searchRelatedPropertiesModel->load(\Yii::$app->request->get());
            if ($dataProvider) {
                $searchRelatedPropertiesModel->search($dataProvider);
            }
            /**
             * @var $model \skeeks\cms\models\CmsContentElement
             */
            if ($model->relatedPropertiesModel) {
                $autoColumns = ArrayHelper::merge($autoColumns, GridViewStandart::getColumnsByRelatedPropertiesModel($model->relatedPropertiesModel, $searchRelatedPropertiesModel));
            }
        }
        return $autoColumns;
    }