index.php 2.68 KB
<?php
    
    use artbox\catalog\models\Category;
    use artbox\catalog\models\CategorySearch;
    use yii\data\ActiveDataProvider;
    use yii\helpers\Html;
    use yiister\gentelella\widgets\grid\GridView;
    use yii\web\View;
    use yiister\gentelella\widgets\Panel;
    
    /**
     * @var View               $this
     * @var CategorySearch     $searchModel
     * @var ActiveDataProvider $dataProvider
     */
    
    $this->title = Yii::t('catalog', 'Categories');
    $this->params[ 'breadcrumbs' ][] = $this->title;
?>
<div class="category-index">
    
    <?php $xPanel = Panel::begin(
        [
            'header' => $this->title,
        ]
    ) ?>
  
  <p>
      <?= Html::a(Yii::t('catalog', 'Create Category'), [ 'create' ], [ 'class' => 'btn btn-success' ]) ?>
  </p>
    <?= GridView::widget(
        [
            'dataProvider' => $dataProvider,
            'filterModel'  => $searchModel,
            'columns'      => [
                [ 'class' => 'yii\grid\SerialColumn' ],
                [
                    'attribute' => 'title',
                    'value'     => function (Category $model) {
                        return $model->lang->title;
                    },
                ],
                [
                    'attribute' => 'thumb_id',
                    'value'     => function (Category $model) {
                        if (empty($model->thumb)) {
                            return '';
                        } else {
                            return $model->thumb->getImg(
                                [
                                    'width' => '300px',
                                ]
                            );
                        }
                    },
                    'format'    => 'html',
                ],
                [
                    'attribute'     => 'parent_id',
                    'value'         => function (Category $model) {
                        if (empty($model->parent)) {
                            return \Yii::t('catalog', 'root');
                        } else {
                            return $model->parent->lang->title;
                        }
                    },
                    'enableSorting' => false,
                ],
                'level',
                [
                    'attribute' => 'status',
                    'format'    => 'boolean',
                    'filter'    => [
                        0 => \Yii::$app->formatter->asBoolean(0),
                        1 => \Yii::$app->formatter->asBoolean(1),
                    ],
                ],

                [ 'class' => 'yii\grid\ActionColumn' ],
            ],
        ]
    ); ?>
    <?php $xPanel::end(); ?>
</div>