[ 'class' => VerbFilter::className(), 'actions' => [ ], ], 'access' => [ 'class' => AccessControl::className(), 'rules' => [ [ 'allow' => true, 'roles' => ['@'], 'matchCallback' => function ($rule, $action) { return User::hasAccessBackend(); } ], ], ], ]; } /** * Liste les points de vente. * * @return mixed */ public function actionIndex() { $searchModel = new ProductCategorySearch(); $dataProvider = $searchModel->search(Yii::$app->request->queryParams); return $this->render('index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); } /** * Crée une catégorie. * * @return mixed */ public function actionCreate() { $model = new ProductCategory(); $model->id_producer = GlobalParam::getCurrentProducerId() ; if ($model->load(Yii::$app->request->post()) && $model->save()) { Yii::$app->getSession()->setFlash('success', "Catégorie ajoutée."); return $this->redirect(['index']); } else { return $this->render('create', [ 'model' => $model, ]); } } /** * Modifie une catégorie. * * @param integer $id * @return mixed */ public function actionUpdate($id) { $model = $this->findModel($id); if ($model->load(Yii::$app->request->post()) && $model->save()) { Yii::$app->getSession()->setFlash('success', "Catégorie modifiée."); return $this->redirect(['index']); } else { return $this->render('update', [ 'model' => $model, ]); } } /** * Supprime une catégorie * * @param integer $id * @return mixed */ public function actionDelete($id) { $productCategory = $this->findModel($id); $productCategory->delete(); Product::updateAll(['id_product_category' => null], ['id_product_category' => $id]); Yii::$app->getSession()->setFlash('success', 'Catégorie ' . Html::encode($productCategory->name) . ' supprimée.'); return $this->redirect(['index']); } /** * Modifie l'ordre des catégories. * * @param array $array */ public function actionPosition() { $array = Yii::$app->request->post('array'); $positionArray = json_decode(stripslashes($array)); foreach ($positionArray as $id => $position) { $category = $this->findModel($id); $category->position = $position; $category->save(); } } /** * Recherche une catégorie en fonction de son ID. * * @param integer $id * @return ProductCategory * @throws NotFoundHttpException si le modèle n'est pas trouvé */ protected function findModel($id) { if (($model = ProductCategory::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } } }