Commit c9d723d78be8c926f54a42400954f53640916b6f
1 parent
5845a9f4
-
Showing
4 changed files
with
34 additions
and
9 deletions
Show diff stats
common/modules/product/controllers/ManageController.php
... | ... | @@ -157,13 +157,16 @@ class ManageController extends Controller |
157 | 157 | $model = $this->findModel($id); |
158 | 158 | if ($model->load(Yii::$app->request->post())) { |
159 | 159 | $model->imagesUpload = UploadedFile::getInstances($model, 'imagesUpload'); |
160 | - $variantImagesUpload = UploadedFile::getInstances($model, 'variants'); | |
161 | - $model->variantImagesUpload = []; | |
160 | + $model->variantImagesUpload = UploadedFile::getInstances($model, 'variants'); | |
161 | + /*if (!empty($variantImagesUpload)) { | |
162 | + var_dump($variantImagesUpload);exit; | |
163 | + }*/ | |
164 | + /*$model->variantImagesUpload = []; | |
162 | 165 | foreach ($_POST['Product']['variants'] as $i => $variant) { |
163 | 166 | if (!empty($variant['product_variant_id'])) { |
164 | 167 | $model->variantImagesUpload[$variant['product_variant_id']] = $variantImagesUpload[$i]; |
165 | 168 | } |
166 | - } | |
169 | + }*/ | |
167 | 170 | if ($model->save()) { |
168 | 171 | // foreach ($model->images as $image) { |
169 | 172 | // $image->delete(); |
... | ... | @@ -178,10 +181,13 @@ class ManageController extends Controller |
178 | 181 | } |
179 | 182 | |
180 | 183 | if ( ($images = $model->variantImagesUpload()) !== FALSE) { |
181 | - foreach ($images as $product_variant_id => $image) { | |
184 | + foreach ($images as $i => $image) { | |
185 | + if (empty($model->_variants[$i])) { | |
186 | + continue; | |
187 | + } | |
182 | 188 | $imageModel = new ProductImage(); |
183 | 189 | $imageModel->product_id = $model->product_id; |
184 | - $imageModel->product_variant_id = $product_variant_id; | |
190 | + $imageModel->product_variant_id = intval($model->_variants[$i]['product_variant_id']); | |
185 | 191 | $imageModel->image = $image; |
186 | 192 | $imageModel->save(); |
187 | 193 | } | ... | ... |
common/modules/product/models/Product.php
... | ... | @@ -223,7 +223,7 @@ class Product extends \yii\db\ActiveRecord |
223 | 223 | if (!is_array($_variant)) { |
224 | 224 | return; |
225 | 225 | } |
226 | - if (!empty($_variant['product_variant_id'])) { | |
226 | + if (!empty($_variant['product_variant_id'])) { | |
227 | 227 | unset($todel[$_variant['product_variant_id']]); |
228 | 228 | $model = ProductVariant::findOne($_variant['product_variant_id']); |
229 | 229 | } else { |
... | ... | @@ -234,9 +234,9 @@ class Product extends \yii\db\ActiveRecord |
234 | 234 | $model->product_id = $this->product_id; |
235 | 235 | $model->save(); |
236 | 236 | } |
237 | -// if (!empty($todel)) { | |
238 | -// ProductVariant::deleteAll(['product_variant_id' => $todel]); | |
239 | -// } | |
237 | + if (!empty($todel)) { | |
238 | + ProductVariant::deleteAll(['product_variant_id' => $todel]); | |
239 | + } | |
240 | 240 | } |
241 | 241 | |
242 | 242 | public function beforeDelete() { | ... | ... |
common/modules/product/models/ProductVariant.php
... | ... | @@ -156,4 +156,8 @@ class ProductVariant extends \yii\db\ActiveRecord |
156 | 156 | public function getId(){ |
157 | 157 | return $this->product_variant_id; |
158 | 158 | } |
159 | + | |
160 | + public function beforeDelete() { | |
161 | + ProductImage::deleteAll(['product_variant_id' => $this->product_variant_id]); | |
162 | + } | |
159 | 163 | } | ... | ... |
frontend/controllers/CatalogController.php
... | ... | @@ -215,6 +215,21 @@ class CatalogController extends \yii\web\Controller |
215 | 215 | $params['prices'] = $filter['prices']; |
216 | 216 | } |
217 | 217 | |
218 | + if ( !empty($filter['special']) ) { | |
219 | + if (!is_array($filter['special'])) { | |
220 | + $filter['special'] = [$filter['special']]; | |
221 | + } | |
222 | + if (in_array('new', $filter['special'])) { | |
223 | + $params['special']['is_new'] = true; | |
224 | + } | |
225 | + if (in_array('top', $filter['special'])) { | |
226 | + $params['special']['is_top'] = true; | |
227 | + } | |
228 | + if (in_array('promo', $filter['special'])) { | |
229 | + $params['special']['akciya'] = true; | |
230 | + } | |
231 | + } | |
232 | + | |
218 | 233 | $productModel = new ProductFrontendSearch(); |
219 | 234 | $productProvider = $productModel->search(null, $params); |
220 | 235 | ... | ... |