Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace backend\controllers;
- use Yii;
- use backend\models\Product;
- use backend\models\ProductSearch;
- use yii\web\Controller;
- use yii\web\NotFoundHttpException;
- use yii\filters\VerbFilter;
- use kartik\widgets\FileInput;
- use backend\models\ImagesManager;
- use yii\web\MethodNotAllowedHttpException;
- /**
- * ProductController implements the CRUD actions for Product model.
- */
- class ProductController extends Controller
- {
- /**
- * {@inheritdoc}
- */
- public function behaviors()
- {
- return [
- 'verbs' => [
- 'class' => VerbFilter::className(),
- 'actions' => [
- 'delete' => ['POST'],
- 'delete-image' => ['POST'],
- 'sort-image' => ['POST'],
- ],
- ],
- ];
- }
- /**
- * Lists all Product models.
- * @return mixed
- */
- public function actionIndex()
- {
- $searchModel = new ProductSearch();
- $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
- return $this->render('index', [
- 'searchModel' => $searchModel,
- 'dataProvider' => $dataProvider,
- ]);
- }
- /**
- * Displays a single Product model.
- * @param integer $id
- * @return mixed
- * @throws NotFoundHttpException if the model cannot be found
- */
- public function actionView($id)
- {
- return $this->render('view', [
- 'model' => $this->findModel($id),
- ]);
- }
- /**
- * Creates a new Product model.
- * If creation is successful, the browser will be redirected to the 'view' page.
- * @return mixed
- */
- public function actionCreate()
- {
- $model = new Product();
- if ($model->load(Yii::$app->request->post()) && $model->save()) {
- return $this->redirect(['update', 'id' => $model->id]);
- }
- return $this->render('create', [
- 'model' => $model,
- 'images' => [],
- ]);
- }
- /**
- * Updates an existing Product model.
- * If update is successful, the browser will be redirected to the 'view' page.
- * @param integer $id
- * @return mixed
- * @throws NotFoundHttpException if the model cannot be found
- */
- public function actionUpdate($id)
- {
- $model = $this->findModel($id);
- /* $images = ImagesManager::find()->where(['product_id' => $id])->all();
- \yii\helpers\VarDumper::dump($images,10,true);exit;*/
- if ($model->load(Yii::$app->request->post()) && $model->save()) {
- return $this->redirect(['view', 'id' => $model->id]);
- }
- return $this->render('update', [
- 'model' => $model,
- 'images' => ImagesManager::find()->where(['product_id' => $id])->all(),
- ]);
- }
- /**
- * Deletes an existing Product model.
- * If deletion is successful, the browser will be redirected to the 'index' page.
- * @param integer $id
- * @return mixed
- * @throws NotFoundHttpException if the model cannot be found
- */
- public function actionDelete($id)
- {
- $this->findModel($id)->delete();
- return $this->redirect(['index']);
- }
- /**
- * Finds the Product model based on its primary key value.
- * If the model is not found, a 404 HTTP exception will be thrown.
- * @param integer $id
- * @return Product the loaded model
- * @throws NotFoundHttpException if the model cannot be found
- */
- protected function findModel($id)
- {
- if (($model = Product::findOne($id)) !== null) {
- return $model;
- }
- throw new NotFoundHttpException('The requested page does not exist.');
- }
- public function actionDeleteImage()
- {
- if(($model = ImagesManager::findOne(Yii::$app->request->post('key'))
- ) and $model->delete()){
- return true;
- }else{
- throw new NotFoundHttpException('Ошибка');
- }
- }
- public function actionSortImage($id){
- if(Yii::$app->request->isAjax) {
- $post = Yii::$app->request->post('sort');
- if($post['oldIndex'] > $post['newIndex']){
- $param = ['and',['>=','sort',$post['newIndex']],['<','sort',$post['oldIndex']]];
- $counter = 1;
- }else{
- $param = ['and',['<=','sort',$post['newIndex']],['>','sort',$post['oldIndex']]];
- $counter = -1;
- }
- ImagesManager::updateAllCounters(['sort'=>$counter], ['and',['class'=>'product','product_id'=>$id],$param]);
- ImagesManager::updateAll(['sort' => $post['newIndex']], ['id' => $post['stack'][$post['newIndex']]['key']]);
- return true;
- }
- throw new MethodNotAllowedHttpException();
- }}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement