/**
  * @param CmsContent $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;
 }
Exemplo n.º 2
0
<? $pjax = \skeeks\cms\modules\admin\widgets\Pjax::begin(); ?>

    <?
        $user = new \skeeks\cms\models\CmsUser();
        $searchRelatedPropertiesModel = new \skeeks\cms\models\searchs\SearchRelatedPropertiesModel();
        $searchRelatedPropertiesModel->propertyElementClassName = \skeeks\cms\models\CmsUserProperty::className();
        $searchRelatedPropertiesModel->initProperties( $user->relatedProperties );
        $searchRelatedPropertiesModel->load(\Yii::$app->request->get());
        if ($dataProvider)
        {
            $searchRelatedPropertiesModel->search($dataProvider, $user->tableName());
        }

        if ($user->relatedPropertiesModel)
        {
            $autoColumns = \skeeks\cms\modules\admin\widgets\GridViewStandart::getColumnsByRelatedPropertiesModel($user->relatedPropertiesModel, $searchRelatedPropertiesModel);
        }
    ?>
    <?php 
echo $this->render('_search', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider]);
?>

    <?php 
echo \skeeks\cms\modules\admin\widgets\GridViewStandart::widget(['dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'adminController' => $controller, 'pjax' => $pjax, 'columns' => \yii\helpers\ArrayHelper::merge([['class' => \skeeks\cms\grid\ImageColumn2::className(), 'attribute' => 'image_id', 'relationName' => 'image'], 'username', 'name', 'email', ['class' => \skeeks\cms\grid\BooleanColumn::className(), 'attribute' => "email_is_approved", 'trueValue' => 1, 'falseValue' => 0], 'phone', ['class' => \skeeks\cms\grid\BooleanColumn::className(), 'attribute' => "phone_is_approved", 'trueValue' => 1, 'falseValue' => 0], ['class' => \skeeks\cms\grid\CreatedAtColumn::className()], ['class' => \skeeks\cms\grid\DateTimeColumnData::className(), 'attribute' => 'logged_at'], ['class' => \yii\grid\DataColumn::className(), 'filter' => \yii\helpers\Html::activeListBox($searchModel, 'role', \yii\helpers\ArrayHelper::merge(['' => ' - '], \yii\helpers\ArrayHelper::map(\Yii::$app->authManager->getRoles(), 'name', 'description')), ['size' => 1, 'class' => 'form-control']), 'value' => function (\skeeks\cms\models\User $model) {
    $result = [];
    if ($roles = \Yii::$app->authManager->getRolesByUser($model->id)) {
        foreach ($roles as $role) {
            $result[] = $role->description . " ({$role->name})";
        }
    }
    return implode(', ', $result);