list.php 2.21 KB
<?php

use backend\widgets\GridView\GridView;
//
use yii\helpers\Url;
use thread\widgets\grid\{
    ActionStatusColumn
};
use thread\app\helpers\tree\TreeHelper;

/**
 * @var $model \backend\modules\menu\models\MenuItem
 * @var $filter \backend\modules\menu\models\search\MenuItem
 */
echo GridView::widget(
    [
        'dataProvider' => TreeHelper::getArrayDataProvider(TreeHelper::getTree($this->context->group->id, \backend\modules\menu\models\MenuItem::class), \backend\modules\menu\models\MenuItem::class),
//        'filterModel' => $filter,
//        'useSortable' => true,
        'columns' => [
            [
                'attribute' => 'title',
                'format' => 'raw',
                'value' => function ($model) {
                    return str_repeat('&nbsp;', $model['level'] * 5) . $model->getTitle();
                }
            ],
//            [
//                'attribute' => 'link_type',
//                'value' => function ($model) {
//                    return MenuItem::linkTypeRange()[$model['link_type']];
//                },
//            ],
            [
                'class' => \thread\widgets\grid\kartik\EditableColumn::class,
                'attribute' => 'position',
                'link' => ['attribute-save-position'],
                'displayValue' => function ($model) {
                    return $model['position'];
                }
            ],
            [
                'class' => ActionStatusColumn::class,
                'attribute' => 'published',
                'action' => 'published'
            ],
            [
                'class' => \backend\widgets\GridView\gridColumns\ActionColumn::class,
                'updateLink' => function ($model) {
                    return Url::toRoute([
                        'update',
                        'group_id' => $model['group_id'],
                        'id' => $model['id']
                    ]);
                },
                'deleteLink' => function ($model) {
                    return Url::toRoute([
                        'intrash',
                        'group_id' => $model['group_id'],
                        'id' => $model['id']
                    ]);
                }
            ],
        ]
    ]
);