From c9d723d78be8c926f54a42400954f53640916b6f Mon Sep 17 00:00:00 2001 From: Karnovsky A Date: Wed, 25 May 2016 11:53:10 +0300 Subject: [PATCH] - --- common/modules/product/controllers/ManageController.php | 16 +++++++++++----- common/modules/product/models/Product.php | 8 ++++---- common/modules/product/models/ProductVariant.php | 4 ++++ frontend/controllers/CatalogController.php | 15 +++++++++++++++ 4 files changed, 34 insertions(+), 9 deletions(-) diff --git a/common/modules/product/controllers/ManageController.php b/common/modules/product/controllers/ManageController.php index 14d362e..9b0fef2 100755 --- a/common/modules/product/controllers/ManageController.php +++ b/common/modules/product/controllers/ManageController.php @@ -157,13 +157,16 @@ class ManageController extends Controller $model = $this->findModel($id); if ($model->load(Yii::$app->request->post())) { $model->imagesUpload = UploadedFile::getInstances($model, 'imagesUpload'); - $variantImagesUpload = UploadedFile::getInstances($model, 'variants'); - $model->variantImagesUpload = []; + $model->variantImagesUpload = UploadedFile::getInstances($model, 'variants'); + /*if (!empty($variantImagesUpload)) { + var_dump($variantImagesUpload);exit; + }*/ + /*$model->variantImagesUpload = []; foreach ($_POST['Product']['variants'] as $i => $variant) { if (!empty($variant['product_variant_id'])) { $model->variantImagesUpload[$variant['product_variant_id']] = $variantImagesUpload[$i]; } - } + }*/ if ($model->save()) { // foreach ($model->images as $image) { // $image->delete(); @@ -178,10 +181,13 @@ class ManageController extends Controller } if ( ($images = $model->variantImagesUpload()) !== FALSE) { - foreach ($images as $product_variant_id => $image) { + foreach ($images as $i => $image) { + if (empty($model->_variants[$i])) { + continue; + } $imageModel = new ProductImage(); $imageModel->product_id = $model->product_id; - $imageModel->product_variant_id = $product_variant_id; + $imageModel->product_variant_id = intval($model->_variants[$i]['product_variant_id']); $imageModel->image = $image; $imageModel->save(); } diff --git a/common/modules/product/models/Product.php b/common/modules/product/models/Product.php index bbf0893..b3ca7cc 100755 --- a/common/modules/product/models/Product.php +++ b/common/modules/product/models/Product.php @@ -223,7 +223,7 @@ class Product extends \yii\db\ActiveRecord if (!is_array($_variant)) { return; } - if (!empty($_variant['product_variant_id'])) { + if (!empty($_variant['product_variant_id'])) { unset($todel[$_variant['product_variant_id']]); $model = ProductVariant::findOne($_variant['product_variant_id']); } else { @@ -234,9 +234,9 @@ class Product extends \yii\db\ActiveRecord $model->product_id = $this->product_id; $model->save(); } -// if (!empty($todel)) { -// ProductVariant::deleteAll(['product_variant_id' => $todel]); -// } + if (!empty($todel)) { + ProductVariant::deleteAll(['product_variant_id' => $todel]); + } } public function beforeDelete() { diff --git a/common/modules/product/models/ProductVariant.php b/common/modules/product/models/ProductVariant.php index afff898..feecd22 100755 --- a/common/modules/product/models/ProductVariant.php +++ b/common/modules/product/models/ProductVariant.php @@ -156,4 +156,8 @@ class ProductVariant extends \yii\db\ActiveRecord public function getId(){ return $this->product_variant_id; } + + public function beforeDelete() { + ProductImage::deleteAll(['product_variant_id' => $this->product_variant_id]); + } } diff --git a/frontend/controllers/CatalogController.php b/frontend/controllers/CatalogController.php index f764fba..1be9dc2 100755 --- a/frontend/controllers/CatalogController.php +++ b/frontend/controllers/CatalogController.php @@ -215,6 +215,21 @@ class CatalogController extends \yii\web\Controller $params['prices'] = $filter['prices']; } + if ( !empty($filter['special']) ) { + if (!is_array($filter['special'])) { + $filter['special'] = [$filter['special']]; + } + if (in_array('new', $filter['special'])) { + $params['special']['is_new'] = true; + } + if (in_array('top', $filter['special'])) { + $params['special']['is_top'] = true; + } + if (in_array('promo', $filter['special'])) { + $params['special']['akciya'] = true; + } + } + $productModel = new ProductFrontendSearch(); $productProvider = $productModel->search(null, $params); -- libgit2 0.21.4