diff --git a/backend/controllers/MenuController.php b/backend/controllers/MenuController.php index 9f33c51..56f9758 100644 --- a/backend/controllers/MenuController.php +++ b/backend/controllers/MenuController.php @@ -4,10 +4,11 @@ namespace backend\controllers; use Yii; use common\models\Menu; -use backend\models\SearchMenu; +use backend\models\MenuSearch; use yii\web\Controller; use yii\web\NotFoundHttpException; use yii\filters\VerbFilter; +use common\models\TerminLang; /** * MenuController implements the CRUD actions for Menu model. @@ -32,7 +33,7 @@ class MenuController extends Controller */ public function actionIndex() { - $searchModel = new SearchMenu(); + $searchModel = new MenuSearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); return $this->render('index', [ @@ -61,14 +62,33 @@ class MenuController extends Controller public function actionCreate() { $model = new Menu(); - $x = Menu::find()->all(); - if ($model->load(Yii::$app->request->post()) && $model->save()) { + $menu = yii::$app->db->createCommand(' + SELECT * + FROM `menu` + LEFT JOIN `termin_lang` ON `termin_lang`.termin_id = `menu`.termin_id + ')->queryAll(); + + + $termin = TerminLang::find()->all(); + + if ($model->load(Yii::$app->request->post())) { + + if($model->menu_pid == null) + { + $model->menu_pid = 0; + } + + + $model->save(); + + return $this->redirect(['view', 'id' => $model->menu_id]); } else { return $this->render('create', [ 'model' => $model, - 'x' => $x, + 'termin' => $termin, + 'menu' => $menu, ]); } } @@ -82,12 +102,22 @@ class MenuController extends Controller public function actionUpdate($id) { $model = $this->findModel($id); + $menu = yii::$app->db->createCommand(' + SELECT * + FROM `menu` + LEFT JOIN `termin_lang` ON `termin_lang`.termin_id = `menu`.termin_id + ')->queryAll() + ['termin_id' => 0, 'termin_title' => 'ROOT']; + + + $termin = TerminLang::find()->all(); if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->menu_id]); } else { return $this->render('update', [ 'model' => $model, + 'termin' => $termin, + 'menu' => $menu, ]); } } diff --git a/backend/views/menu/_form.php b/backend/views/menu/_form.php index c945c0d..1c439c5 100644 --- a/backend/views/menu/_form.php +++ b/backend/views/menu/_form.php @@ -3,6 +3,7 @@ use yii\helpers\Html; use yii\widgets\ActiveForm; use yii\helpers\ArrayHelper; +use kartik\select2\Select2; /* @var $this yii\web\View */ /* @var $model common\models\Menu */ @@ -13,16 +14,36 @@ use yii\helpers\ArrayHelper; - = $form->field($model, 'menu_pid')->dropDownList(ArrayHelper::map($x, 'menu_id', 'menu_id')) ?> + - = $form->field($model, 'termin_id')->textInput() ?> + = $form->field($model, 'termin_id')->widget(Select2::classname(), [ + //'data' => $data, + 'language' => 'ru', + 'options' => ['placeholder' => 'под меню ...'], + 'pluginOptions' => [ + + ], + 'data' => ArrayHelper::map($termin, 'termin_id', 'termin_title'), // data as array + ]) ?> - = $form->field($model, 'show')->textInput() ?> + = $form->field($model, 'menu_pid')->widget(Select2::classname(), [ + //'data' => $data, + 'language' => 'ru', + 'options' => ['placeholder' => 'Меню родитель ...'], + 'pluginOptions' => [ + + ], + 'data' => ArrayHelper::map($menu, 'termin_id', 'termin_title'), // data as array + ]) ?> - = $form->field($model, 'sortorder')->textInput() ?> + + + = $form->field($model, 'show')->dropDownList(['1' => Yii::t('action', 'show'), '0' => Yii::t('action', 'hide')]) ?> + + = $form->field($model, 'sortorder')->dropDownList(['1' => '1', '0' => '2']) ?>