index.php 2.89 KB
<?php

use yii\helpers\Html;
use kartik\grid\GridView;

/* @var $this yii\web\View */
/* @var $searchModel common\modules\product\models\CategorySearch */
/* @var $dataProvider yii\data\ActiveDataProvider */

$this->title = Yii::t('product', 'Categories');
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="category-index">

    <h1><?= Html::encode($this->title) ?></h1>
    <?php // echo $this->render('_search', ['model' => $searchModel]); ?>

    <p>
        <?= Html::a(Yii::t('product', 'Create Category'), ['create'], ['class' => 'btn btn-success']) ?>
    </p>
    <?= GridView::widget([
        'dataProvider' => $dataProvider,
//        'filterModel' => $searchModel,
        'columns' => [
            ['class' => 'yii\grid\SerialColumn'],
            [
                'label'=> Yii::t('product', 'Name'),
                'content'=>function($data){
                    $op = [];
                    foreach($data->getParents()->all() as $parent) {
                        $op[] = $parent->name;
                    }
                    $op[] = $data->name;
                    return implode('&nbsp;&rarr;&nbsp;', $op);
//                    return str_repeat('-', $data->depth) .'&nbsp;'. $data->name;
                }
            ],
            [
                'class' => 'yii\grid\ActionColumn',
                'template' => '{view} {update} {delete} {populary}',
                'buttons' => [
                    'populary' => function ($url, $model) {
                        if ($model->depth == 2) {
                            return Html::a('<span class="glyphicon glyphicon-star' . ($model->populary ? '' : '-empty') . '"></span>', $url, [
                                'title' => Yii::t('product', ($model->populary ? 'Set not populary' : 'Set populary')),
                            ]);
                        }
                    },
                ],
                'urlCreator' => function ($action, $model, $key, $index) {
                    switch ($action) {
                        case 'populary':
                            return \yii\helpers\Url::to(['category/populary', 'id' => $model->category_id]);
                            break;
                        case 'view':
                            return \yii\helpers\Url::to(['category/view', 'id' => $model->category_id]);
                            break;
                        case 'update':
                            return \yii\helpers\Url::to(['category/update', 'id' => $model->category_id]);
                            break;
                        case 'delete':
                            return \yii\helpers\Url::to(['category/delete', 'id' => $model->category_id]);
                            break;
                    }
                }
            ],
        ],
        'panel' => [
            'type'=>'success',
        ],
    ]); ?>
</div>