Commit 7765bf97b8dc7025502c3f9dd566952f9317dc9f
1 parent
583ea05f
menu no perevod
Showing
9 changed files
with
104 additions
and
36 deletions
Show diff stats
backend/controllers/MenuController.php
... | ... | @@ -4,10 +4,11 @@ namespace backend\controllers; |
4 | 4 | |
5 | 5 | use Yii; |
6 | 6 | use common\models\Menu; |
7 | -use backend\models\SearchMenu; | |
7 | +use backend\models\MenuSearch; | |
8 | 8 | use yii\web\Controller; |
9 | 9 | use yii\web\NotFoundHttpException; |
10 | 10 | use yii\filters\VerbFilter; |
11 | +use common\models\TerminLang; | |
11 | 12 | |
12 | 13 | /** |
13 | 14 | * MenuController implements the CRUD actions for Menu model. |
... | ... | @@ -32,7 +33,7 @@ class MenuController extends Controller |
32 | 33 | */ |
33 | 34 | public function actionIndex() |
34 | 35 | { |
35 | - $searchModel = new SearchMenu(); | |
36 | + $searchModel = new MenuSearch(); | |
36 | 37 | $dataProvider = $searchModel->search(Yii::$app->request->queryParams); |
37 | 38 | |
38 | 39 | return $this->render('index', [ |
... | ... | @@ -61,14 +62,33 @@ class MenuController extends Controller |
61 | 62 | public function actionCreate() |
62 | 63 | { |
63 | 64 | $model = new Menu(); |
64 | - $x = Menu::find()->all(); | |
65 | 65 | |
66 | - if ($model->load(Yii::$app->request->post()) && $model->save()) { | |
66 | + $menu = yii::$app->db->createCommand(' | |
67 | + SELECT * | |
68 | + FROM `menu` | |
69 | + LEFT JOIN `termin_lang` ON `termin_lang`.termin_id = `menu`.termin_id | |
70 | + ')->queryAll(); | |
71 | + | |
72 | + | |
73 | + $termin = TerminLang::find()->all(); | |
74 | + | |
75 | + if ($model->load(Yii::$app->request->post())) { | |
76 | + | |
77 | + if($model->menu_pid == null) | |
78 | + { | |
79 | + $model->menu_pid = 0; | |
80 | + } | |
81 | + | |
82 | + | |
83 | + $model->save(); | |
84 | + | |
85 | + | |
67 | 86 | return $this->redirect(['view', 'id' => $model->menu_id]); |
68 | 87 | } else { |
69 | 88 | return $this->render('create', [ |
70 | 89 | 'model' => $model, |
71 | - 'x' => $x, | |
90 | + 'termin' => $termin, | |
91 | + 'menu' => $menu, | |
72 | 92 | ]); |
73 | 93 | } |
74 | 94 | } |
... | ... | @@ -82,12 +102,22 @@ class MenuController extends Controller |
82 | 102 | public function actionUpdate($id) |
83 | 103 | { |
84 | 104 | $model = $this->findModel($id); |
105 | + $menu = yii::$app->db->createCommand(' | |
106 | + SELECT * | |
107 | + FROM `menu` | |
108 | + LEFT JOIN `termin_lang` ON `termin_lang`.termin_id = `menu`.termin_id | |
109 | + ')->queryAll() + ['termin_id' => 0, 'termin_title' => 'ROOT']; | |
110 | + | |
111 | + | |
112 | + $termin = TerminLang::find()->all(); | |
85 | 113 | |
86 | 114 | if ($model->load(Yii::$app->request->post()) && $model->save()) { |
87 | 115 | return $this->redirect(['view', 'id' => $model->menu_id]); |
88 | 116 | } else { |
89 | 117 | return $this->render('update', [ |
90 | 118 | 'model' => $model, |
119 | + 'termin' => $termin, | |
120 | + 'menu' => $menu, | |
91 | 121 | ]); |
92 | 122 | } |
93 | 123 | } | ... | ... |
backend/views/menu/_form.php
... | ... | @@ -3,6 +3,7 @@ |
3 | 3 | use yii\helpers\Html; |
4 | 4 | use yii\widgets\ActiveForm; |
5 | 5 | use yii\helpers\ArrayHelper; |
6 | +use kartik\select2\Select2; | |
6 | 7 | |
7 | 8 | /* @var $this yii\web\View */ |
8 | 9 | /* @var $model common\models\Menu */ |
... | ... | @@ -13,16 +14,36 @@ use yii\helpers\ArrayHelper; |
13 | 14 | |
14 | 15 | <?php $form = ActiveForm::begin(); ?> |
15 | 16 | |
16 | - <?= $form->field($model, 'menu_pid')->dropDownList(ArrayHelper::map($x, 'menu_id', 'menu_id')) ?> | |
17 | + | |
17 | 18 | |
18 | - <?= $form->field($model, 'termin_id')->textInput() ?> | |
19 | + <?= $form->field($model, 'termin_id')->widget(Select2::classname(), [ | |
20 | + //'data' => $data, | |
21 | + 'language' => 'ru', | |
22 | + 'options' => ['placeholder' => 'под меню ...'], | |
23 | + 'pluginOptions' => [ | |
24 | + | |
25 | + ], | |
26 | + 'data' => ArrayHelper::map($termin, 'termin_id', 'termin_title'), // data as array | |
27 | + ]) ?> | |
19 | 28 | |
20 | - <?= $form->field($model, 'show')->textInput() ?> | |
29 | + <?= $form->field($model, 'menu_pid')->widget(Select2::classname(), [ | |
30 | + //'data' => $data, | |
31 | + 'language' => 'ru', | |
32 | + 'options' => ['placeholder' => 'Меню родитель ...'], | |
33 | + 'pluginOptions' => [ | |
34 | + | |
35 | + ], | |
36 | + 'data' => ArrayHelper::map($menu, 'termin_id', 'termin_title'), // data as array | |
37 | + ]) ?> | |
21 | 38 | |
22 | - <?= $form->field($model, 'sortorder')->textInput() ?> | |
39 | + | |
40 | + | |
41 | + <?= $form->field($model, 'show')->dropDownList(['1' => Yii::t('action', 'show'), '0' => Yii::t('action', 'hide')]) ?> | |
42 | + | |
43 | + <?= $form->field($model, 'sortorder')->dropDownList(['1' => '1', '0' => '2']) ?> | |
23 | 44 | |
24 | 45 | <div class="form-group"> |
25 | - <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> | |
46 | + <?= Html::submitButton($model->isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'), ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']) ?> | |
26 | 47 | </div> |
27 | 48 | |
28 | 49 | <?php ActiveForm::end(); ?> | ... | ... |
backend/views/menu/_search.php
... | ... | @@ -4,7 +4,7 @@ use yii\helpers\Html; |
4 | 4 | use yii\widgets\ActiveForm; |
5 | 5 | |
6 | 6 | /* @var $this yii\web\View */ |
7 | -/* @var $model backend\models\SearchMenu */ | |
7 | +/* @var $model backend\models\MenuSearch */ | |
8 | 8 | /* @var $form yii\widgets\ActiveForm */ |
9 | 9 | ?> |
10 | 10 | |
... | ... | @@ -30,8 +30,8 @@ use yii\widgets\ActiveForm; |
30 | 30 | <?php // echo $form->field($model, 'sortorder') ?> |
31 | 31 | |
32 | 32 | <div class="form-group"> |
33 | - <?= Html::submitButton('Search', ['class' => 'btn btn-primary']) ?> | |
34 | - <?= Html::resetButton('Reset', ['class' => 'btn btn-default']) ?> | |
33 | + <?= Html::submitButton(Yii::t('app', 'Search'), ['class' => 'btn btn-primary']) ?> | |
34 | + <?= Html::resetButton(Yii::t('app', 'Reset'), ['class' => 'btn btn-default']) ?> | |
35 | 35 | </div> |
36 | 36 | |
37 | 37 | <?php ActiveForm::end(); ?> | ... | ... |
backend/views/menu/create.php
... | ... | @@ -6,8 +6,8 @@ use yii\helpers\Html; |
6 | 6 | /* @var $this yii\web\View */ |
7 | 7 | /* @var $model common\models\Menu */ |
8 | 8 | |
9 | -$this->title = 'Create Menu'; | |
10 | -$this->params['breadcrumbs'][] = ['label' => 'Menus', 'url' => ['index']]; | |
9 | +$this->title = Yii::t('app', 'Create Menu'); | |
10 | +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Menus'), 'url' => ['index']]; | |
11 | 11 | $this->params['breadcrumbs'][] = $this->title; |
12 | 12 | ?> |
13 | 13 | <div class="menu-create"> |
... | ... | @@ -16,7 +16,8 @@ $this->params['breadcrumbs'][] = $this->title; |
16 | 16 | |
17 | 17 | <?= $this->render('_form', [ |
18 | 18 | 'model' => $model, |
19 | - 'x' => $x, | |
19 | + 'termin' => $termin, | |
20 | + 'menu' => $menu, | |
20 | 21 | ]) ?> |
21 | 22 | |
22 | 23 | </div> | ... | ... |
backend/views/menu/index.php
... | ... | @@ -4,10 +4,10 @@ use yii\helpers\Html; |
4 | 4 | use yii\grid\GridView; |
5 | 5 | |
6 | 6 | /* @var $this yii\web\View */ |
7 | -/* @var $searchModel backend\models\SearchMenu */ | |
7 | +/* @var $searchModel backend\models\MenuSearch */ | |
8 | 8 | /* @var $dataProvider yii\data\ActiveDataProvider */ |
9 | 9 | |
10 | -$this->title = 'Menus'; | |
10 | +$this->title = Yii::t('app', 'Menus'); | |
11 | 11 | $this->params['breadcrumbs'][] = $this->title; |
12 | 12 | ?> |
13 | 13 | <div class="menu-index"> |
... | ... | @@ -16,7 +16,7 @@ $this->params['breadcrumbs'][] = $this->title; |
16 | 16 | <?php // echo $this->render('_search', ['model' => $searchModel]); ?> |
17 | 17 | |
18 | 18 | <p> |
19 | - <?= Html::a('Create Menu', ['create'], ['class' => 'btn btn-success']) ?> | |
19 | + <?= Html::a(Yii::t('app', 'Create Menu'), ['create'], ['class' => 'btn btn-success']) ?> | |
20 | 20 | </p> |
21 | 21 | |
22 | 22 | <?= GridView::widget([ |
... | ... | @@ -27,8 +27,14 @@ $this->params['breadcrumbs'][] = $this->title; |
27 | 27 | |
28 | 28 | 'menu_id', |
29 | 29 | 'menu_pid', |
30 | - 'menu_lft', | |
31 | - 'menu_rgt', | |
30 | + [ | |
31 | + 'attribute' => 'menu_pid', | |
32 | + 'value' => function ($model) { | |
33 | + return empty($model->termin_id) ? '-' : $model->termin_lang->termin_title; | |
34 | + }, | |
35 | + ], | |
36 | + // 'menu_lft', | |
37 | + // 'menu_rgt', | |
32 | 38 | 'termin_id', |
33 | 39 | // 'show', |
34 | 40 | // 'sortorder', | ... | ... |
backend/views/menu/update.php
... | ... | @@ -5,10 +5,12 @@ use yii\helpers\Html; |
5 | 5 | /* @var $this yii\web\View */ |
6 | 6 | /* @var $model common\models\Menu */ |
7 | 7 | |
8 | -$this->title = 'Update Menu: ' . ' ' . $model->menu_id; | |
9 | -$this->params['breadcrumbs'][] = ['label' => 'Menus', 'url' => ['index']]; | |
8 | +$this->title = Yii::t('app', 'Update {modelClass}: ', [ | |
9 | + 'modelClass' => 'Menu', | |
10 | +]) . ' ' . $model->menu_id; | |
11 | +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Menus'), 'url' => ['index']]; | |
10 | 12 | $this->params['breadcrumbs'][] = ['label' => $model->menu_id, 'url' => ['view', 'id' => $model->menu_id]]; |
11 | -$this->params['breadcrumbs'][] = 'Update'; | |
13 | +$this->params['breadcrumbs'][] = Yii::t('app', 'Update'); | |
12 | 14 | ?> |
13 | 15 | <div class="menu-update"> |
14 | 16 | |
... | ... | @@ -16,6 +18,8 @@ $this->params['breadcrumbs'][] = 'Update'; |
16 | 18 | |
17 | 19 | <?= $this->render('_form', [ |
18 | 20 | 'model' => $model, |
21 | + 'termin' => $termin, | |
22 | + 'menu' => $menu, | |
19 | 23 | ]) ?> |
20 | 24 | |
21 | 25 | </div> | ... | ... |
backend/views/menu/view.php
... | ... | @@ -7,7 +7,7 @@ use yii\widgets\DetailView; |
7 | 7 | /* @var $model common\models\Menu */ |
8 | 8 | |
9 | 9 | $this->title = $model->menu_id; |
10 | -$this->params['breadcrumbs'][] = ['label' => 'Menus', 'url' => ['index']]; | |
10 | +$this->params['breadcrumbs'][] = ['label' => Yii::t('app', 'Menus'), 'url' => ['index']]; | |
11 | 11 | $this->params['breadcrumbs'][] = $this->title; |
12 | 12 | ?> |
13 | 13 | <div class="menu-view"> |
... | ... | @@ -15,11 +15,11 @@ $this->params['breadcrumbs'][] = $this->title; |
15 | 15 | <h1><?= Html::encode($this->title) ?></h1> |
16 | 16 | |
17 | 17 | <p> |
18 | - <?= Html::a('Update', ['update', 'id' => $model->menu_id], ['class' => 'btn btn-primary']) ?> | |
19 | - <?= Html::a('Delete', ['delete', 'id' => $model->menu_id], [ | |
18 | + <?= Html::a(Yii::t('app', 'Update'), ['update', 'id' => $model->menu_id], ['class' => 'btn btn-primary']) ?> | |
19 | + <?= Html::a(Yii::t('app', 'Delete'), ['delete', 'id' => $model->menu_id], [ | |
20 | 20 | 'class' => 'btn btn-danger', |
21 | 21 | 'data' => [ |
22 | - 'confirm' => 'Are you sure you want to delete this item?', | |
22 | + 'confirm' => Yii::t('app', 'Are you sure you want to delete this item?'), | |
23 | 23 | 'method' => 'post', |
24 | 24 | ], |
25 | 25 | ]) ?> | ... | ... |
common/models/Menu.php
... | ... | @@ -31,7 +31,7 @@ class Menu extends \yii\db\ActiveRecord |
31 | 31 | public function rules() |
32 | 32 | { |
33 | 33 | return [ |
34 | - [['menu_pid', 'menu_lft', 'menu_rgt', 'termin_id', 'show', 'sortorder'], 'required'], | |
34 | + [['menu_pid', 'menu_lft', 'menu_rgt', 'termin_id', 'show', 'sortorder'], 'safe'], | |
35 | 35 | [['menu_pid', 'menu_lft', 'menu_rgt', 'termin_id', 'show', 'sortorder'], 'integer'] |
36 | 36 | ]; |
37 | 37 | } |
... | ... | @@ -42,13 +42,14 @@ class Menu extends \yii\db\ActiveRecord |
42 | 42 | public function attributeLabels() |
43 | 43 | { |
44 | 44 | return [ |
45 | - 'menu_id' => 'Menu ID', | |
46 | - 'menu_pid' => 'Menu Pid', | |
47 | - 'menu_lft' => 'Menu Lft', | |
48 | - 'menu_rgt' => 'Menu Rgt', | |
49 | - 'termin_id' => 'Termin ID', | |
50 | - 'show' => 'Show', | |
51 | - 'sortorder' => 'Sortorder', | |
45 | + 'menu_id' => Yii::t('app', 'Menu ID'), | |
46 | + 'menu_pid' => Yii::t('app', 'Menu Pid'), | |
47 | + 'menu_lft' => Yii::t('app', 'Menu Lft'), | |
48 | + 'menu_rgt' => Yii::t('app', 'Menu Rgt'), | |
49 | + 'termin_id' => Yii::t('app', 'Termin ID'), | |
50 | + 'show' => Yii::t('app', 'Show'), | |
51 | + 'sortorder' => Yii::t('app', 'Sortorder'), | |
52 | 52 | ]; |
53 | 53 | } |
54 | + | |
54 | 55 | } | ... | ... |
common/models/TerminLang.php