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