Commit b7d40aed597aee597188060cf01c6d49bb9f57f2

Authored by Yarik
1 parent 7975da13

Another one admin fix

backend/views/layouts/main-sidebar.php
... ... @@ -6,9 +6,6 @@ use yii\widgets\Menu;
6 6 <!-- sidebar: style can be found in sidebar.less -->
7 7 <section class="sidebar">
8 8 <?php
9   -//print_r($this->context->id);
10   -// die();
11   -
12 9 $items = [
13 10 [
14 11 'label' => 'Заказы',
... ... @@ -34,43 +31,50 @@ use yii\widgets\Menu;
34 31 [
35 32 'label' => 'Товары',
36 33 'url' => ['/product/manage'],
37   - 'options' => ['class'=>\Yii::$app->user->can('product') ? '' :'hide']
  34 + 'options' => ['class'=>\Yii::$app->user->can('product') ? '' :'hide'],
  35 + 'active' => preg_match('/^manage.*$/', $this->context->id),
38 36 ],
39 37 [
40 38 'label' => 'Доставка',
41 39 'url' => ['/delivery'],
42   - 'options' => ['class'=>\Yii::$app->user->can('delivery') ? '' :'hide']
  40 + 'options' => ['class'=>\Yii::$app->user->can('delivery') ? '' :'hide'],
  41 + 'active' => preg_match('/^delivery.*$/', $this->context->id),
43 42 ],
44 43 [
45 44 'label' => 'Статус товара',
46 45 'url' => ['/label'],
47   - 'options' => ['class'=>\Yii::$app->user->can('label') ? '' :'hide']
  46 + 'options' => ['class'=>\Yii::$app->user->can('label') ? '' :'hide'],
  47 + 'active' => preg_match('/^label.*$/', $this->context->id),
48 48 ],
49 49 [
50 50 'label' => 'Категории',
51 51 'url' => ['/category'],
52 52 'options' => ['class'=>\Yii::$app->user->can('category') ? '' :'hide'],
53   -
  53 + 'active' => preg_match('/^category.*$/', $this->context->id),
54 54 ],
55 55 [
56 56 'label' => 'Бренды',
57 57 'url' => ['/brand'],
58 58 'options' => ['class'=>\Yii::$app->user->can('brand') ? '' :'hide'],
  59 + 'active' => preg_match('/^brand.*$/', $this->context->id),
59 60 ],
60 61 [
61 62 'label' => 'Единицы измерения',
62 63 'url' => ['/product/product-unit'],
63 64 'options' => ['class'=>\Yii::$app->user->can('product') ? '' :'hide'],
  65 + 'active' => preg_match('/^product-unit.*$/', $this->context->id),
64 66 ],
65 67 [
66 68 'label' => 'Импорт товаров',
67 69 'url' => ['/product/manage/import'],
68 70 'options' => ['class'=>\Yii::$app->user->can('product') ? '' :'hide'],
  71 + 'active' => preg_match('/^import.*$/', $this->context->id),
69 72 ],
70 73 [
71 74 'label' => 'Экспорт товаров',
72 75 'url' => ['/product/manage/export'],
73 76 'options' => ['class'=>\Yii::$app->user->can('product') ? '' :'hide'],
  77 + 'active' => preg_match('/^export.*$/', $this->context->id),
74 78 ],
75 79 [
76 80 'label' => 'Характеристики Товаров',
... ... @@ -227,7 +231,6 @@ use yii\widgets\Menu;
227 231 echo Menu::widget([
228 232 'options' => ['class' => 'sidebar-menu'],
229 233 'submenuTemplate' => "\n<ul class='treeview-menu'>\n{items}\n</ul>\n",
230   -
231 234 'items' =>$items,
232 235  
233 236 ]);
... ...
common/modules/rubrication/controllers/TaxGroupController.php
... ... @@ -42,6 +42,9 @@
42 42 {
43 43 $dataProvider = new ActiveDataProvider([
44 44 'query' => TaxGroup::find()
  45 + ->with('lang')
  46 + ->with('options')
  47 + ->with('categories')
45 48 ->where([ 'level' => $level ]),
46 49 ]);
47 50  
... ... @@ -52,20 +55,6 @@
52 55 }
53 56  
54 57 /**
55   - * Displays a single TaxGroup model.
56   - *
57   - * @param integer $id
58   - *
59   - * @return mixed
60   - */
61   - public function actionView($level, $id)
62   - {
63   - return $this->render('view', [
64   - 'model' => $this->findModel($id),
65   - ]);
66   - }
67   -
68   - /**
69 58 * Creates a new TaxGroup model.
70 59 * If creation is successful, the browser will be redirected to the 'view' page.
71 60 *
... ... @@ -118,6 +107,7 @@
118 107 return $this->render('update', [
119 108 'model' => $model,
120 109 'model_langs' => $model->model_langs,
  110 + 'level' => $level,
121 111 ]);
122 112 }
123 113  
... ... @@ -161,7 +151,11 @@
161 151 */
162 152 protected function findModel($id)
163 153 {
164   - if(( $model = TaxGroup::findOne($id) ) !== NULL) {
  154 + if(( $model = TaxGroup::find()
  155 + ->with('lang')
  156 + ->where([ 'tax_group_id' => $id ])
  157 + ->one() ) !== NULL
  158 + ) {
165 159 return $model;
166 160 } else {
167 161 throw new NotFoundHttpException('The requested page does not exist.');
... ...
common/modules/rubrication/controllers/TaxOptionController.php
... ... @@ -37,10 +37,15 @@
37 37 */
38 38 public function actionIndex()
39 39 {
  40 + $group = $this->findGroup(Yii::$app->request->queryParams[ 'group' ]);
40 41 $searchModel = new TaxOptionSearch();
41 42 $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
42   -
43   - $group = TaxGroup::findOne(Yii::$app->request->queryParams[ 'group' ]);
  43 + $dataProvider->query->andWhere([ 'tax_group_id' => $group->tax_group_id ]);
  44 + if($group->level) {
  45 + $dataProvider->query->with('productVariants');
  46 + } else {
  47 + $dataProvider->query->with('products');
  48 + }
44 49  
45 50 return $this->render('index', [
46 51 'searchModel' => $searchModel,
... ... @@ -50,32 +55,17 @@
50 55 }
51 56  
52 57 /**
53   - * Displays a single TaxOption model.
54   - *
55   - * @param string $id
56   - *
57   - * @return mixed
58   - */
59   - public function actionView($id)
60   - {
61   - $model = $this->findModel($id);
62   - $group = TaxGroup::findOne($model->tax_group_id);
63   - return $this->render('view', [
64   - 'model' => $model,
65   - 'group' => $group,
66   - ]);
67   - }
68   -
69   - /**
70 58 * Creates a new TaxOption model.
71 59 * If creation is successful, the browser will be redirected to the 'view' page.
72 60 * @return mixed
73 61 */
74 62 public function actionCreate()
75 63 {
76   - $model = new TaxOption();
  64 + $group = $this->findGroup(Yii::$app->request->queryParams[ 'group' ]);
  65 + $model = new TaxOption([
  66 + 'tax_group_id' => $group->tax_group_id,
  67 + ]);
77 68 $model->generateLangs();
78   - $group = TaxGroup::findOne(Yii::$app->request->queryParams[ 'group' ]);
79 69 if($model->load(Yii::$app->request->post())) {
80 70 $model->loadLangs(\Yii::$app->request);
81 71 if($model->save() && $model->transactionStatus) {
... ... @@ -85,7 +75,6 @@
85 75 ]) : $this->redirect(array_merge([ 'create' ], Yii::$app->request->queryParams));
86 76 }
87 77 }
88   - $model->tax_group_id = $group->tax_group_id;
89 78 if(!empty( Yii::$app->request->queryParams[ 'parent' ] )) {
90 79 $model->parent_id = Yii::$app->request->queryParams[ 'parent' ];
91 80 }
... ... @@ -107,12 +96,12 @@
107 96 public function actionUpdate($id)
108 97 {
109 98 $model = $this->findModel($id);
  99 + $group = $this->findGroup($model->tax_group_id);
110 100 $model->generateLangs();
111   - $group = TaxGroup::findOne($model->tax_group_id);
112 101 if($model->load(Yii::$app->request->post())) {
113 102 $model->loadLangs(\Yii::$app->request);
114   -// TaxOption::find()
115   -// ->rebuildMP($model->tax_group_id);
  103 + // TaxOption::find()
  104 + // ->rebuildMP($model->tax_group_id);
116 105 if($model->save() && $model->transactionStatus) {
117 106 return $this->redirect([
118 107 'view',
... ... @@ -159,7 +148,30 @@
159 148 */
160 149 protected function findModel($id)
161 150 {
162   - if(( $model = TaxOption::findOne($id) ) !== NULL) {
  151 + if(( $model = TaxOption::find()
  152 + ->with('lang')
  153 + ->where([ 'tax_option_id' => $id ])
  154 + ->one() ) !== NULL
  155 + ) {
  156 + return $model;
  157 + } else {
  158 + throw new NotFoundHttpException('The requested page does not exist.');
  159 + }
  160 + }
  161 +
  162 + /**
  163 + * @param int $id
  164 + *
  165 + * @return null|TaxGroup
  166 + * @throws NotFoundHttpException
  167 + */
  168 + protected function findGroup($id)
  169 + {
  170 + if(( $model = TaxGroup::find()
  171 + ->with('lang')
  172 + ->where([ 'tax_group_id' => $id ])
  173 + ->one() ) !== NULL
  174 + ) {
163 175 return $model;
164 176 } else {
165 177 throw new NotFoundHttpException('The requested page does not exist.');
... ...
common/modules/rubrication/models/TaxOption.php
... ... @@ -5,6 +5,7 @@
5 5 use common\behaviors\SaveImgBehavior;
6 6 use common\modules\language\behaviors\LanguageBehavior;
7 7 use common\modules\product\models\Product;
  8 + use common\modules\product\models\ProductVariant;
8 9 use Yii;
9 10 use common\components\artboxtree\ArtboxTreeBehavior;
10 11 use yii\db\ActiveQuery;
... ... @@ -13,26 +14,27 @@
13 14  
14 15 /**
15 16 * This is the model class for table "{{%tax_option}}".
16   - * @property string $tax_option_id
17   - * @property integer $tax_group_id
18   - * @property integer $parent_id
19   - * @property integer $tree
20   - * @property string $path_int
21   - * @property integer $depth
22   - * @property integer $sort
23   - * @property string $image
24   - * @property TaxGroup $taxGroup
25   - * @property TaxOption $parent
26   - * @property TaxOption[] $taxOptions
27   - * @property Product[] $products
  17 + * @property string $tax_option_id
  18 + * @property integer $tax_group_id
  19 + * @property integer $parent_id
  20 + * @property integer $tree
  21 + * @property string $path_int
  22 + * @property integer $depth
  23 + * @property integer $sort
  24 + * @property string $image
  25 + * @property TaxGroup $taxGroup
  26 + * @property TaxOption $parent
  27 + * @property TaxOption[] $taxOptions
  28 + * @property Product[] $products
  29 + * @property ProductVariant[] $productVariants
28 30 * * From language behavior *
29   - * @property TaxOptionLang $lang
30   - * @property TaxOptionLang[] $langs
31   - * @property TaxOptionLang $object_lang
32   - * @property string $ownerKey
33   - * @property string $langKey
34   - * @property TaxOptionLang[] $model_langs
35   - * @property bool $transactionStatus
  31 + * @property TaxOptionLang $lang
  32 + * @property TaxOptionLang[] $langs
  33 + * @property TaxOptionLang $object_lang
  34 + * @property string $ownerKey
  35 + * @property string $langKey
  36 + * @property TaxOptionLang[] $model_langs
  37 + * @property bool $transactionStatus
36 38 * @method string getOwnerKey()
37 39 * @method void setOwnerKey( string $value )
38 40 * @method string getLangKey()
... ... @@ -93,12 +95,6 @@
93 95 [
94 96 [
95 97 'tax_group_id',
96   - ],
97   - 'required',
98   - ],
99   - [
100   - [
101   - 'tax_group_id',
102 98 'parent_id',
103 99 'sort',
104 100 ],
... ... @@ -175,4 +171,10 @@
175 171 return $this->hasMany(Product::className(), [ 'product_id' => 'product_id' ])
176 172 ->viaTable('product_option', [ 'option_id' => 'tax_option_id' ]);
177 173 }
  174 +
  175 + public function getProductVariants()
  176 + {
  177 + return $this->hasMany(ProductVariant::className(), [ 'product_variant_id' => 'product_variant_id' ])
  178 + ->viaTable('product_variant_option', [ 'option_id' => 'tax_option_id' ]);
  179 + }
178 180 }
... ...
common/modules/rubrication/models/TaxOptionSearch.php
1 1 <?php
2   -
3   -namespace common\modules\rubrication\models;
4   -
5   -use yii\base\Model;
6   -use yii\data\ActiveDataProvider;
7   -
8   -/**
9   - * TaxOptionSearch represents the model behind the search form about `common\modules\rubrication\models\TaxOption`.
10   - */
11   -class TaxOptionSearch extends TaxOption
12   -{
13 2  
14   - public function behaviors()
15   - {
16   - $behaviors = parent::behaviors();
17   - if(isset($behaviors['language'])) {
18   - unset($behaviors['language']);
19   - }
20   - return $behaviors;
21   - }
  3 + namespace common\modules\rubrication\models;
  4 +
  5 + use yii\base\Model;
  6 + use yii\data\ActiveDataProvider;
22 7  
23 8 /**
24   - * @inheritdoc
25   - */
26   - public function rules()
27   - {
28   - return [
29   - [['tax_option_id', 'tax_group_id', 'parent_id', 'sort'], 'integer'],
30   - ];
31   - }
32   -
33   - /**
34   - * @inheritdoc
35   - */
36   - public function scenarios()
37   - {
38   - // bypass scenarios() implementation in the parent class
39   - return Model::scenarios();
40   - }
41   -
42   - /**
43   - * Creates data provider instance with search query applied
44   - *
45   - * @param array $params
46   - *
47   - * @return ActiveDataProvider
  9 + * TaxOptionSearch represents the model behind the search form about
  10 + * `common\modules\rubrication\models\TaxOption`.
48 11 */
49   - public function search($params)
  12 + class TaxOptionSearch extends TaxOption
50 13 {
51   - $query = TaxOption::find();
52   - // add conditions that should always apply here
53   - if (!empty($params['group'])) {
54   - $this->tax_group_id = intval($params['group']);
55   - unset($params['group']);
  14 +
  15 + public $value;
  16 +
  17 + public function behaviors()
  18 + {
  19 + $behaviors = parent::behaviors();
  20 + if(isset( $behaviors[ 'language' ] )) {
  21 + unset( $behaviors[ 'language' ] );
  22 + }
  23 + return $behaviors;
56 24 }
57   -
58   - $dataProvider = new ActiveDataProvider([
59   - 'query' => $query,
60   - ]);
61   -
62   - $this->load($params);
63   -
64   -// if (!$this->validate()) {
65   -// return $dataProvider;
66   -// }
67   -
68   - // grid filtering conditions
69   - $query->andFilterWhere([
70   - 'tax_option_id' => $this->tax_option_id,
71   - 'tax_group_id' => $this->tax_group_id,
72   - 'parent_id' => $this->parent_id,
73   - 'sort' => $this->sort,
74   - ]);
75 25  
76   - $query->orderBy(['path_int' => SORT_ASC, 'depth' => SORT_ASC, 'sort' => SORT_ASC]);
77   -
78   - return $dataProvider;
  26 + /**
  27 + * @inheritdoc
  28 + */
  29 + public function rules()
  30 + {
  31 + return [
  32 + [
  33 + [ 'value' ],
  34 + 'safe',
  35 + ],
  36 + [
  37 + [ 'tax_option_id' ],
  38 + 'integer',
  39 + ],
  40 + ];
  41 + }
  42 +
  43 + /**
  44 + * @inheritdoc
  45 + */
  46 + public function scenarios()
  47 + {
  48 + // bypass scenarios() implementation in the parent class
  49 + return Model::scenarios();
  50 + }
  51 +
  52 + /**
  53 + * Creates data provider instance with search query applied
  54 + *
  55 + * @param array $params
  56 + *
  57 + * @return ActiveDataProvider
  58 + */
  59 + public function search($params)
  60 + {
  61 + $query = TaxOption::find()
  62 + ->joinWith('lang');
  63 +
  64 + $dataProvider = new ActiveDataProvider([
  65 + 'query' => $query,
  66 + 'sort' => [
  67 + 'attributes' => [
  68 + 'tax_option_id',
  69 + 'value' => [
  70 + 'asc' => [ 'tax_option_lang.value' => SORT_ASC ],
  71 + 'desc' => [ 'tax_option_lang.value' => SORT_DESC ],
  72 + ],
  73 + ],
  74 + ],
  75 + ]);
  76 +
  77 + $this->load($params);
  78 +
  79 + // if (!$this->validate()) {
  80 + // return $dataProvider;
  81 + // }
  82 +
  83 + // grid filtering conditions
  84 + $query->andFilterWhere([
  85 + 'tax_option_id' => $this->tax_option_id,
  86 + ])
  87 + ->andFilterWhere([
  88 + 'like',
  89 + 'tax_option_lang.value',
  90 + $this->value,
  91 + ]);
  92 +
  93 + return $dataProvider;
  94 + }
79 95 }
80   -}
... ...
common/modules/rubrication/views/tax-group/index.php
1 1 <?php
  2 + use common\modules\rubrication\models\TaxGroup;
2 3 use yii\data\ActiveDataProvider;
3 4 use yii\helpers\Html;
4 5 use yii\grid\GridView;
... ... @@ -11,7 +12,7 @@
11 12 * @var ActiveDataProvider $dataProvider
12 13 */
13 14  
14   - $this->title = Yii::t('rubrication', 'Groups');
  15 + $this->title = $level?Yii::t('rubrication', 'Modification Groups'):Yii::t('rubrication', 'Product Groups');
15 16 $this->params[ 'breadcrumbs' ][] = $this->title;
16 17 ?>
17 18  
... ... @@ -31,34 +32,39 @@
31 32 [ 'class' => 'yii\grid\SerialColumn' ],
32 33 'tax_group_id',
33 34 'is_filter:boolean',
34   -
  35 + 'lang.name',
  36 + [
  37 + 'label' => \Yii::t('rubrication', 'Options count'),
  38 + 'value' => function($model) {
  39 + /**
  40 + * @var TaxGroup $model
  41 + */
  42 + return count($model->options);
  43 + }
  44 + ],
  45 + [
  46 + 'label' => \Yii::t('rubrication', 'Categories count'),
  47 + 'value' => function($model) {
  48 + /**
  49 + * @var TaxGroup $model
  50 + */
  51 + return count($model->categories);
  52 + }
  53 + ],
35 54 [
36 55 'class' => 'yii\grid\ActionColumn',
37   - 'template' => '{update} {options} {relations} {delete} {rebuild}',
  56 + 'template' => '{update} {options} {delete}',
38 57 'buttons' => [
39 58 'options' => function($url, $model) {
40 59 return Html::a('<span class="glyphicon glyphicon-th-list"></span>', $url, [
41 60 'title' => Yii::t('rubrication', 'Options'),
42 61 ]);
43 62 },
44   - 'relations' => function($url, $model) {
45   - return Html::a('<!--span class="glyphicon glyphicon-random"></span-->', $url, [
46   - 'title' => Yii::t('rubrication', 'Relations'),
47   - ]);
48   - },
49   - 'rebuild' => function($url, $model) {
50   - return Html::a('<!--span class="glyphicon glyphicon-refresh"></span-->', $url, [
51   - 'title' => Yii::t('rubrication', 'Rebuild cache'),
52   - ]);
53   - },
54 63 ],
55 64 'urlCreator' => function($action, $model, $key, $index) use ($level) {
56 65 if($action === 'options') {
57 66 $url = '/admin/rubrication/tax-option?group=' . $model->tax_group_id;
58 67 return $url;
59   - } elseif($action === 'relations') {
60   - $url = '/admin/rubrication/tax-group/relation&id=' . $model->tax_group_id;
61   - return $url;
62 68 } elseif($action === 'update') {
63 69 $url = Url::to([
64 70 '/rubrication/tax-group/update',
... ... @@ -73,9 +79,6 @@
73 79 'id' => $model->tax_group_id,
74 80 ]);
75 81 return $url;
76   - } elseif($action === 'rebuild') {
77   - $url = '/admin/rubrication/tax-group/rebuild?id=' . $model->tax_group_id;
78   - return $url;
79 82 }
80 83 return '';
81 84 },
... ...
common/modules/rubrication/views/tax-group/update.php
... ... @@ -9,21 +9,15 @@
9 9 * @var View $this
10 10 * @var TaxGroup $model
11 11 * @var TaxGroupLang[] $model_langs
  12 + * @var int $level
12 13 */
13 14  
14 15 $this->title = Yii::t('rubrication', 'Update {modelClass}: ', [
15 16 'modelClass' => 'Tax Group',
16   - ]) . ' ' . $model->tax_group_id;
  17 + ]) . ' ' . $model->lang->name;
17 18 $this->params[ 'breadcrumbs' ][] = [
18   - 'label' => Yii::t('rubrication', 'Groups'),
19   - 'url' => [ 'index' ],
20   - ];
21   - $this->params[ 'breadcrumbs' ][] = [
22   - 'label' => $model->tax_group_id,
23   - 'url' => [
24   - 'view',
25   - 'id' => $model->tax_group_id,
26   - ],
  19 + 'label' => $level?Yii::t('rubrication', 'Modification Groups'):Yii::t('rubrication', 'Product Groups'),
  20 + 'url' => [ 'index', 'level' => $level ],
27 21 ];
28 22 $this->params[ 'breadcrumbs' ][] = Yii::t('rubrication', 'Update');
29 23 ?>
... ...
common/modules/rubrication/views/tax-option/create.php
... ... @@ -12,21 +12,26 @@
12 12 */
13 13 $this->title = Yii::t('rubrication', 'Create Tax Option');
14 14 $this->params[ 'breadcrumbs' ][] = [
15   - 'label' => Yii::t('rubrication', 'Groups'),
16   - 'url' => [ 'tax-group/index' ],
  15 + 'label' => $group->level ? Yii::t('rubrication', 'Modification Groups') : Yii::t('rubrication', 'Product Groups'),
  16 + 'url' => [
  17 + 'tax-group/index',
  18 + 'level' => $group->level,
  19 + ],
17 20 ];
18 21 $this->params[ 'breadcrumbs' ][] = [
19   - 'label' => Yii::t('rubrication', $group->tax_group_id),
  22 + 'label' => $group->lang->name,
20 23 'url' => [
21   - 'index',
22   - 'group' => $group->tax_group_id,
  24 + 'tax-group/update',
  25 + 'id' => $group->tax_group_id,
  26 + 'level' => $group->level,
23 27 ],
24 28 ];
25 29 $this->params[ 'breadcrumbs' ][] = [
26   - 'label' => Yii::t('rubrication', Yii::t('rubrication', 'Options of {name}', [ 'name' => $group->tax_group_id ])),
  30 + 'label' => Yii::t('rubrication', 'Options for group {group}', [ 'group' => $group->lang->name ]),
27 31 'url' => [
28 32 'index',
29   - 'group' => $group->tax_group_id,
  33 + 'group' => $group->tax_group_id,
  34 + 'level' => $group->level,
30 35 ],
31 36 ];
32 37 $this->params[ 'breadcrumbs' ][] = $this->title;
... ...
common/modules/rubrication/views/tax-option/index.php
1 1 <?php
2 2  
3 3 use common\modules\rubrication\models\TaxGroup;
  4 + use common\modules\rubrication\models\TaxOption;
4 5 use yii\helpers\Html;
5 6 use yii\grid\GridView;
6 7  
... ... @@ -11,10 +12,21 @@
11 12 * @var TaxGroup $group
12 13 */
13 14  
14   - $this->title = Yii::t('rubrication', 'Options for group "{group}"', [ 'group' => $group->tax_group_id ]);
  15 + $this->title = Yii::t('rubrication', 'Options for group {group}', [ 'group' => $group->lang->name ]);
15 16 $this->params[ 'breadcrumbs' ][] = [
16   - 'label' => Yii::t('rubrication', 'Groups'),
17   - 'url' => [ 'tax-group/index' ],
  17 + 'label' => $group->level ? Yii::t('rubrication', 'Modification Groups') : Yii::t('rubrication', 'Product Groups'),
  18 + 'url' => [
  19 + 'tax-group/index',
  20 + 'level' => $group->level,
  21 + ],
  22 + ];
  23 + $this->params[ 'breadcrumbs' ][] = [
  24 + 'label' => $group->lang->name,
  25 + 'url' => [
  26 + 'tax-group/update',
  27 + 'id' => $group->tax_group_id,
  28 + 'level' => $group->level,
  29 + ],
18 30 ];
19 31 $this->params[ 'breadcrumbs' ][] = $this->title;
20 32 ?>
... ... @@ -28,22 +40,27 @@
28 40  
29 41 <?php echo GridView::widget([
30 42 'dataProvider' => $dataProvider,
  43 + 'filterModel' => $searchModel,
31 44 'columns' => [
32 45 [ 'class' => 'yii\grid\SerialColumn' ],
33 46 'tax_option_id',
34 47 [
  48 + 'attribute' => 'value',
  49 + 'value' => 'lang.value',
  50 + ],
  51 + 'imageUrl:image',
  52 + [
  53 + 'label' => $group->level?\Yii::t('rubrication', 'Variants count'):\Yii::t('rubrication', 'Products count'),
  54 + 'value' => function($model)use($group) {
  55 + /**
  56 + * @var TaxOption $model
  57 + */
  58 + return count($group->level?$model->productVariants:$model->products);
  59 + }
  60 + ],
  61 + [
35 62 'class' => 'yii\grid\ActionColumn',
36 63 'template' => '{update} {delete}',
37   - 'urlCreator' => function($action, $model, $key, $index) {
38   - if($action === 'update') {
39   - $url = '/admin/rubrication/tax-option/update?id=' . $model->tax_option_id;
40   - return $url;
41   - } elseif($action === 'delete') {
42   - $url = '/admin/rubrication/tax-option/delete?id=' . $model->tax_option_id;
43   - return $url;
44   - }
45   - return '';
46   - },
47 64 ],
48 65 ],
49 66 ]); ?>
... ...
common/modules/rubrication/views/tax-option/update.php
... ... @@ -12,26 +12,31 @@
12 12 */
13 13 $this->title = Yii::t('rubrication', 'Update {modelClass}: ', [
14 14 'modelClass' => 'Tax Option',
15   - ]) . ' ' . $model->tax_option_id;
  15 + ]) . ' ' . $model->lang->value;
16 16 $this->params[ 'breadcrumbs' ][] = [
17   - 'label' => Yii::t('rubrication', 'Groups'),
18   - 'url' => [ 'tax-group/index' ],
  17 + 'label' => $group->level ? Yii::t('rubrication', 'Modification Groups') : Yii::t('rubrication', 'Product Groups'),
  18 + 'url' => [
  19 + 'tax-group/index',
  20 + 'level' => $group->level,
  21 + ],
19 22 ];
20 23 $this->params[ 'breadcrumbs' ][] = [
21   - 'label' => $group->tax_group_id,
  24 + 'label' => $group->lang->name,
22 25 'url' => [
23   - 'view',
24   - 'id' => $group->tax_group_id,
  26 + 'tax-group/update',
  27 + 'id' => $group->tax_group_id,
  28 + 'level' => $group->level,
25 29 ],
26 30 ];
27 31 $this->params[ 'breadcrumbs' ][] = [
28   - 'label' => Yii::t('rubrication', Yii::t('rubrication', 'Options of {name}', [ 'name' => $group->tax_group_id ])),
  32 + 'label' => Yii::t('rubrication', 'Options for group {group}', [ 'group' => $group->lang->name ]),
29 33 'url' => [
30 34 'index',
31 35 'group' => $group->tax_group_id,
  36 + 'level' => $group->level,
32 37 ],
33 38 ];
34   - $this->params[ 'breadcrumbs' ][] = Yii::t('rubrication', 'Update');
  39 + $this->params[ 'breadcrumbs' ][] = $this->title;
35 40 ?>
36 41 <div class="tax-option-update">
37 42  
... ...