public function actionUpdate($id) { $model = $this->findModel($id); $model->setScenario('admin-edit-page-static'); if ($model->load(Yii::$app->request->post()) && $model->save()) { $lang = $this->prepareLang(Yii::$app->request->post()); $translate = $this->getTranslateModel($model->id, $lang); if ($translate->load(Yii::$app->request->post()) && $translate->save()) { Yii::$app->session->setFlash('success', Yii::t('posts', 'Post \'{id}\' successfully updated', ['id' => $model->id])); } return $this->redirect(['index']); } else { $translates = []; foreach (Yii::$app->params['languages'] as $lang => $val) { $translates[] = $this->getTranslateModel($id, $lang); } $postStatuses = Post::getStatusArray(); return $this->render('create', ['model' => $model, 'translates' => $translates, 'postStatuses' => $postStatuses, 'rubrics' => Rubric::getRubricsForSelect($model->app_id)]); } }
/** * @inheritdoc */ public function rules() { return [['alias', 'string'], ['title', 'string'], ['views', 'integer'], ['author_id', 'integer'], ['status', 'in', 'range' => array_keys(Post::getStatusArray())]]; }
<?php use yii\helpers\Html; use kartik\grid\GridView; use kartik\icons\Icon; use common\models\User; use tpoxa\cmars\models\Post; $this->title = Yii::t('pages', 'Posts'); $this->params['breadcrumbs'][] = $this->title; ?> <div class="row"> <div class="col-lg-12"> <?php echo GridView::widget(['dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'responsive' => true, 'hover' => true, 'showPageSummary' => false, 'showFooter' => false, 'export' => false, 'panel' => ['heading' => '<h3 class="panel-title">' . Icon::show('lock') . Yii::t('pages', 'Pages') . '</h3>', 'type' => 'default', 'before' => Html::a(Icon::show('plus') . Yii::t('pages', 'Create'), ['create'], ['class' => 'btn btn-success']), 'after' => Html::a(Icon::show('repeat') . Yii::t('pages', 'Reset'), ['index'], ['class' => 'btn btn-info'])], 'columns' => [['class' => 'kartik\\grid\\SerialColumn'], 'title', 'alias', ['attribute' => 'status', 'vAlign' => 'middle', 'value' => function ($model) { $postStatuses = Post::getStatusArray(); return $postStatuses[$model->status]; }, 'filter' => Html::activeDropDownList($searchModel, 'status', $postStatuses, ['class' => 'form-control', 'prompt' => Yii::t('pages', 'Status')])], 'views', ['header' => Yii::t('pages', 'Actions'), 'class' => 'kartik\\grid\\ActionColumn', 'dropdown' => false, 'width' => '200px', 'viewOptions' => ['title' => Yii::t('pages', 'Details')], 'updateOptions' => ['title' => Yii::t('pages', 'Edit page')], 'deleteOptions' => ['title' => Yii::t('pages', 'Delete action')]], ['class' => 'kartik\\grid\\CheckboxColumn']]]); ?> </div> </div>