Commit 66285ecac41334937590e619e23c2ff71b291944
1 parent
7253a9a0
big commti
Showing
15 changed files
with
143 additions
and
145 deletions
Show diff stats
backend/controllers/EventController.php
@@ -159,6 +159,14 @@ class EventController extends Controller | @@ -159,6 +159,14 @@ class EventController extends Controller | ||
159 | return $this->redirect(['index']); | 159 | return $this->redirect(['index']); |
160 | } | 160 | } |
161 | 161 | ||
162 | + public function actionDelimg($id,$field){ | ||
163 | + $model = $this->findModel($id); | ||
164 | + $model->$field = ''; | ||
165 | + $model->save(); | ||
166 | + return true; | ||
167 | + } | ||
168 | + | ||
169 | + | ||
162 | /** | 170 | /** |
163 | * Finds the Event model based on its primary key value. | 171 | * Finds the Event model based on its primary key value. |
164 | * If the model is not found, a 404 HTTP exception will be thrown. | 172 | * If the model is not found, a 404 HTTP exception will be thrown. |
backend/views/event/_form.php
@@ -51,8 +51,9 @@ use mihaildev\elfinder\ElFinder; | @@ -51,8 +51,9 @@ use mihaildev\elfinder\ElFinder; | ||
51 | 'pluginOptions' => [ | 51 | 'pluginOptions' => [ |
52 | 'allowedFileExtensions' => ['jpg', 'gif', 'png'], | 52 | 'allowedFileExtensions' => ['jpg', 'gif', 'png'], |
53 | 'initialPreview' => !empty($model->imageUrl) ? \common\components\artboximage\ArtboxImageHelper::getImage($model->imageUrl, 'list') : '', | 53 | 'initialPreview' => !empty($model->imageUrl) ? \common\components\artboximage\ArtboxImageHelper::getImage($model->imageUrl, 'list') : '', |
54 | + 'deleteUrl' => \yii\helpers\Url::to(['/product/manage/delimg', 'id' => $model->primaryKey]), | ||
55 | + 'initialPreviewConfig' => $model->getImagesConfig(), | ||
54 | 'overwriteInitial' => true, | 56 | 'overwriteInitial' => true, |
55 | - 'showRemove' => false, | ||
56 | 'showUpload' => false, | 57 | 'showUpload' => false, |
57 | 'previewFileType' => 'image', | 58 | 'previewFileType' => 'image', |
58 | ], | 59 | ], |
@@ -68,8 +69,9 @@ use mihaildev\elfinder\ElFinder; | @@ -68,8 +69,9 @@ use mihaildev\elfinder\ElFinder; | ||
68 | 'pluginOptions' => [ | 69 | 'pluginOptions' => [ |
69 | 'allowedFileExtensions' => ['jpg', 'gif', 'png'], | 70 | 'allowedFileExtensions' => ['jpg', 'gif', 'png'], |
70 | 'initialPreview' => !empty($model->getImageUrl('banner')) ? \common\components\artboximage\ArtboxImageHelper::getImage($model->getImageUrl('banner'), 'list') : '', | 71 | 'initialPreview' => !empty($model->getImageUrl('banner')) ? \common\components\artboximage\ArtboxImageHelper::getImage($model->getImageUrl('banner'), 'list') : '', |
72 | + 'deleteUrl' => \yii\helpers\Url::to(['/product/manage/delimg', 'id' => $model->primaryKey]), | ||
73 | + 'initialPreviewConfig' => $model->getImagesConfig('banner'), | ||
71 | 'overwriteInitial' => true, | 74 | 'overwriteInitial' => true, |
72 | - 'showRemove' => false, | ||
73 | 'showUpload' => false, | 75 | 'showUpload' => false, |
74 | 'previewFileType' => 'image', | 76 | 'previewFileType' => 'image', |
75 | ], | 77 | ], |
common/behaviors/SaveImgBehavior.php
@@ -52,6 +52,23 @@ class SaveImgBehavior extends Behavior | @@ -52,6 +52,23 @@ class SaveImgBehavior extends Behavior | ||
52 | 52 | ||
53 | } | 53 | } |
54 | 54 | ||
55 | + public function getImagesConfig($image = 'image') { | ||
56 | + $op = []; | ||
57 | + if ($this->owner->$image) { | ||
58 | + | ||
59 | + $op[] = [ | ||
60 | + 'caption' => $this->owner->$image, | ||
61 | + 'url' => \yii\helpers\Url::to(['delimg', 'id' => $this->owner->primaryKey, 'field' =>$image ]), | ||
62 | + 'key' => $this->owner->primaryKey, | ||
63 | + 'extra' => [ | ||
64 | + 'id' => $this->owner->primaryKey, | ||
65 | + ], | ||
66 | + ]; | ||
67 | + | ||
68 | + } | ||
69 | + return $op; | ||
70 | + } | ||
71 | + | ||
55 | 72 | ||
56 | public function beforeInsert($event) | 73 | public function beforeInsert($event) |
57 | { | 74 | { |
common/config/main.php
@@ -157,6 +157,13 @@ return [ | @@ -157,6 +157,13 @@ return [ | ||
157 | 'master' => null | 157 | 'master' => null |
158 | ], | 158 | ], |
159 | ], | 159 | ], |
160 | + 'banner_list' => [ | ||
161 | + 'resize' => [ | ||
162 | + 'width' => 160, | ||
163 | + 'height' => 60, | ||
164 | + 'master' => null | ||
165 | + ], | ||
166 | + ], | ||
160 | 'large' => [ | 167 | 'large' => [ |
161 | 'resize' => [ | 168 | 'resize' => [ |
162 | 'width' => 600, | 169 | 'width' => 600, |
common/models/Event.php
@@ -91,10 +91,10 @@ class Event extends \yii\db\ActiveRecord | @@ -91,10 +91,10 @@ class Event extends \yii\db\ActiveRecord | ||
91 | { | 91 | { |
92 | return [ | 92 | return [ |
93 | [['body', 'seo_text'], 'string'], | 93 | [['body', 'seo_text'], 'string'], |
94 | - [['created_at', 'updated_at','percent','sale','is_event' ], 'integer'], | 94 | + [['created_at', 'updated_at','percent' ], 'integer'], |
95 | [['name', 'alias', 'image', 'meta_title', 'description', 'h1','end_at','banner'], 'string', 'max' => 255], | 95 | [['name', 'alias', 'image', 'meta_title', 'description', 'h1','end_at','banner'], 'string', 'max' => 255], |
96 | [['name','body'], 'required'], | 96 | [['name','body'], 'required'], |
97 | - [['imageUpload'], 'safe'], | 97 | + [['imageUpload','sale','is_event'], 'safe'], |
98 | [['imageUpload'], 'file', 'extensions' => 'jpg, gif, png'], | 98 | [['imageUpload'], 'file', 'extensions' => 'jpg, gif, png'], |
99 | [['products_file'], 'file'], | 99 | [['products_file'], 'file'], |
100 | ]; | 100 | ]; |
common/modules/product/models/Import.php
@@ -248,9 +248,10 @@ class Import extends Model { | @@ -248,9 +248,10 @@ class Import extends Model { | ||
248 | 248 | ||
249 | // 1 Группа (категория) | 249 | // 1 Группа (категория) |
250 | $catalog_names = explode(',',$data[0]); | 250 | $catalog_names = explode(',',$data[0]); |
251 | + | ||
251 | if (empty ($catalog_names)) | 252 | if (empty ($catalog_names)) |
252 | { | 253 | { |
253 | - $result_items[] = "Не указана категория (строка $j)"; | 254 | + $result_items[] = "Не указана категория (строка $j) "; |
254 | continue; | 255 | continue; |
255 | } | 256 | } |
256 | 257 | ||
@@ -281,7 +282,7 @@ class Import extends Model { | @@ -281,7 +282,7 @@ class Import extends Model { | ||
281 | 282 | ||
282 | // 11 Цена акция | 283 | // 11 Цена акция |
283 | $product_cost_old = floatval($data[7]); | 284 | $product_cost_old = floatval($data[7]); |
284 | - | 285 | + $product_cost = ''; |
285 | // 10 Цена | 286 | // 10 Цена |
286 | if ($product_cost_old) { | 287 | if ($product_cost_old) { |
287 | $product_cost_old = floatval($data[6]); | 288 | $product_cost_old = floatval($data[6]); |
@@ -315,15 +316,16 @@ class Import extends Model { | @@ -315,15 +316,16 @@ class Import extends Model { | ||
315 | $product_image = explode ('=', $data[14]); | 316 | $product_image = explode ('=', $data[14]); |
316 | $product_image = @$product_image[3]; | 317 | $product_image = @$product_image[3]; |
317 | 318 | ||
318 | - if ( ($_product = Product::find()->filterWhere(['ilike', 'name', trim($product_name)])->one()) === null ) { | 319 | + if ( ($_product = Product::find()->filterWhere(['name' => trim($product_name)])->one()) === null ) { |
319 | $_product = new Product(); | 320 | $_product = new Product(); |
320 | } | 321 | } |
321 | 322 | ||
322 | $is_new_product = empty($_product->product_id); | 323 | $is_new_product = empty($_product->product_id); |
323 | - | 324 | + $category_id = []; |
324 | foreach($catalog_names as $catalog_name){ | 325 | foreach($catalog_names as $catalog_name){ |
326 | + | ||
325 | // ==== Set category ==== | 327 | // ==== Set category ==== |
326 | - if ( ($category = Category::find()->filterWhere(['ilike', 'name', trim($catalog_name)])->one()) === null ) { | 328 | + if ( ($category = Category::find()->filterWhere([ 'name' => trim($catalog_name)])->one()) === null ) { |
327 | // Create category | 329 | // Create category |
328 | $category = new Category(); | 330 | $category = new Category(); |
329 | $category->name = trim($catalog_name); | 331 | $category->name = trim($catalog_name); |
@@ -338,7 +340,7 @@ class Import extends Model { | @@ -338,7 +340,7 @@ class Import extends Model { | ||
338 | 340 | ||
339 | // ===== Set brand ==== | 341 | // ===== Set brand ==== |
340 | if ( $brand_name ) { | 342 | if ( $brand_name ) { |
341 | - if ( ($brand = Brand::find()->filterWhere(['ilike', 'name', trim($brand_name)])->one()) !== null ) { | 343 | + if ( ($brand = Brand::find()->filterWhere(['name' => trim($brand_name)])->one()) !== null ) { |
342 | $_product->brand_id = $brand->brand_id; | 344 | $_product->brand_id = $brand->brand_id; |
343 | } else { | 345 | } else { |
344 | // Create brand | 346 | // Create brand |
@@ -368,7 +370,7 @@ class Import extends Model { | @@ -368,7 +370,7 @@ class Import extends Model { | ||
368 | $source_image = Yii::getAlias('@uploadDir') . '/product_images/'. urlencode($foto); | 370 | $source_image = Yii::getAlias('@uploadDir') . '/product_images/'. urlencode($foto); |
369 | 371 | ||
370 | if (file_exists($source_image)) { | 372 | if (file_exists($source_image)) { |
371 | - if (($productImage = ProductImage::find()->andFilterWhere(['ilike', 'image', $foto])->andFilterWhere(['product_id' => $_product->product_id])->one()) === null) { | 373 | + if (($productImage = ProductImage::find()->andFilterWhere(['image'=> $foto])->andFilterWhere(['product_id' => $_product->product_id])->one()) === null) { |
372 | copy($source_image, Yii::getAlias('@productsDir') . "/" . $foto); | 374 | copy($source_image, Yii::getAlias('@productsDir') . "/" . $foto); |
373 | $productImage = new ProductImage(); | 375 | $productImage = new ProductImage(); |
374 | $productImage->product_id = $_product->product_id; | 376 | $productImage->product_id = $_product->product_id; |
@@ -397,7 +399,7 @@ class Import extends Model { | @@ -397,7 +399,7 @@ class Import extends Model { | ||
397 | $mod_old_cost = floatval($product_cost_old); | 399 | $mod_old_cost = floatval($product_cost_old); |
398 | 400 | ||
399 | // Check product variant | 401 | // Check product variant |
400 | - if ( ($_productVariant = ProductVariant::find()->andFilterWhere(['ilike', 'sku', $mod_art])->andFilterWhere(['product_id' => $_product->product_id])->one()) === null ) { | 402 | + if ( ($_productVariant = ProductVariant::find()->andFilterWhere([ 'sku'=> $mod_art])->andFilterWhere(['product_id' => $_product->product_id])->one()) === null ) { |
401 | $_productVariant = new ProductVariant(); | 403 | $_productVariant = new ProductVariant(); |
402 | $_productVariant->product_id = $_product->product_id; | 404 | $_productVariant->product_id = $_product->product_id; |
403 | } | 405 | } |
@@ -428,7 +430,7 @@ class Import extends Model { | @@ -428,7 +430,7 @@ class Import extends Model { | ||
428 | 430 | ||
429 | // ===== Set variant type ==== | 431 | // ===== Set variant type ==== |
430 | if ( $product_variant_type_name ) { | 432 | if ( $product_variant_type_name ) { |
431 | - if ( ($product_variant_type = ProductVariantType::find()->filterWhere(['ilike', 'name', $product_variant_type_name])->one()) !== null ) { | 433 | + if ( ($product_variant_type = ProductVariantType::find()->filterWhere([ 'name'=> $product_variant_type_name])->one()) !== null ) { |
432 | $_productVariant->product_variant_type_id = $product_variant_type->product_variant_type_id; | 434 | $_productVariant->product_variant_type_id = $product_variant_type->product_variant_type_id; |
433 | } else { | 435 | } else { |
434 | $product_variant_type = new ProductVariantType(); | 436 | $product_variant_type = new ProductVariantType(); |
@@ -443,10 +445,10 @@ class Import extends Model { | @@ -443,10 +445,10 @@ class Import extends Model { | ||
443 | $MOD_ARRAY[] = $_productVariant->product_variant_id; | 445 | $MOD_ARRAY[] = $_productVariant->product_variant_id; |
444 | 446 | ||
445 | if ($mod_image) { | 447 | if ($mod_image) { |
446 | - $source_image = Yii::getAlias('@uploadDir') . '/product_images/'. urlencode($mod_image); | 448 | + $source_image = Yii::getAlias('@productsDir') . '/'. urlencode($mod_image); |
447 | if (file_exists($source_image)) { | 449 | if (file_exists($source_image)) { |
448 | - if (($variantImage = ProductImage::find()->andFilterWhere(['ilike', 'image', $mod_image])->andFilterWhere(['product_variant_id' => $_productVariant->product_variant_id])->one()) === null) { | ||
449 | - copy($source_image, Yii::getAlias('@productsDir') . "/" . $mod_image); | 450 | + if (($variantImage = ProductImage::find()->andFilterWhere([ 'image' => $mod_image])->andFilterWhere(['product_variant_id' => $_productVariant->product_variant_id])->one()) === null) { |
451 | +// copy($source_image, Yii::getAlias('@productsDir') . "/" . $mod_image); | ||
450 | $variantImage = new ProductImage(); | 452 | $variantImage = new ProductImage(); |
451 | $variantImage->product_id = $_product->product_id; | 453 | $variantImage->product_id = $_product->product_id; |
452 | $variantImage->product_variant_id = $_productVariant->product_variant_id; | 454 | $variantImage->product_variant_id = $_productVariant->product_variant_id; |
@@ -575,7 +577,7 @@ class Import extends Model { | @@ -575,7 +577,7 @@ class Import extends Model { | ||
575 | $filters_options = explode(',',$filter[2][0]); | 577 | $filters_options = explode(',',$filter[2][0]); |
576 | 578 | ||
577 | foreach($filters_options as $filter_options){ | 579 | foreach($filters_options as $filter_options){ |
578 | - $value = TaxValueString::find()->innerJoinWith('taxOption')->andFilterWhere(['ilike', 'value', $filter_options])->andFilterWhere(['tax_option.tax_group_id' => $taxGroup->tax_group_id])->one(); | 580 | + $value = TaxValueString::find()->innerJoinWith('taxOption')->andWhere(['value'=>$filter_options])->andWhere(['tax_option.tax_group_id' => $taxGroup->tax_group_id])->one(); |
579 | 581 | ||
580 | if (!$value instanceof TaxValueString) { | 582 | if (!$value instanceof TaxValueString) { |
581 | // Create option | 583 | // Create option |
common/modules/product/models/Product.php
@@ -37,8 +37,9 @@ use common\models\Event; | @@ -37,8 +37,9 @@ use common\models\Event; | ||
37 | */ | 37 | */ |
38 | class Product extends \yii\db\ActiveRecord | 38 | class Product extends \yii\db\ActiveRecord |
39 | { | 39 | { |
40 | - /** @var array $_variants */ | ||
41 | public $_variants = []; | 40 | public $_variants = []; |
41 | + public $_categories = []; | ||
42 | + public $_options = []; | ||
42 | 43 | ||
43 | /** @var array $_images */ | 44 | /** @var array $_images */ |
44 | public $imagesUpload = ''; | 45 | public $imagesUpload = ''; |
@@ -77,6 +78,11 @@ class Product extends \yii\db\ActiveRecord | @@ -77,6 +78,11 @@ class Product extends \yii\db\ActiveRecord | ||
77 | { | 78 | { |
78 | return '{{%product}}'; | 79 | return '{{%product}}'; |
79 | } | 80 | } |
81 | + | ||
82 | + | ||
83 | + /** | ||
84 | + * @return \yii\db\ActiveQuery | ||
85 | + */ | ||
80 | public function getEvents(){ | 86 | public function getEvents(){ |
81 | return $this->hasMany(Event::className(), ['event_id' => 'event_id'])->viaTable('events_to_products', ['product_id' => 'product_id']); | 87 | return $this->hasMany(Event::className(), ['event_id' => 'event_id'])->viaTable('events_to_products', ['product_id' => 'product_id']); |
82 | } | 88 | } |
@@ -159,6 +165,7 @@ class Product extends \yii\db\ActiveRecord | @@ -159,6 +165,7 @@ class Product extends \yii\db\ActiveRecord | ||
159 | return $this->hasMany(ProductImage::className(), ['product_id' => 'product_id'])->where(['product_variant_id' => null]); | 165 | return $this->hasMany(ProductImage::className(), ['product_id' => 'product_id'])->where(['product_variant_id' => null]); |
160 | } | 166 | } |
161 | 167 | ||
168 | + | ||
162 | /** | 169 | /** |
163 | * @return \yii\db\ActiveQuery | 170 | * @return \yii\db\ActiveQuery |
164 | */ | 171 | */ |
@@ -313,21 +320,7 @@ class Product extends \yii\db\ActiveRecord | @@ -313,21 +320,7 @@ class Product extends \yii\db\ActiveRecord | ||
313 | { | 320 | { |
314 | 321 | ||
315 | if(parent::beforeSave($insert)){ | 322 | if(parent::beforeSave($insert)){ |
316 | - if(!empty($this->categories)){ | ||
317 | - $categories = Category::findAll($this->categories); | ||
318 | - $this->unlinkAll('categories', true); | ||
319 | - foreach($categories as $category){ | ||
320 | - $this->link('categories', $category); | ||
321 | - } | ||
322 | - } | ||
323 | 323 | ||
324 | - if(!empty($this->options)){ | ||
325 | - $options = TaxOption::findAll($this->options); | ||
326 | - $this->unlinkAll('options',true); | ||
327 | - foreach($options as $option){ | ||
328 | - $this->link('options', $option); | ||
329 | - } | ||
330 | - } | ||
331 | return true; | 324 | return true; |
332 | } | 325 | } |
333 | return false; | 326 | return false; |
@@ -340,6 +333,24 @@ class Product extends \yii\db\ActiveRecord | @@ -340,6 +333,24 @@ class Product extends \yii\db\ActiveRecord | ||
340 | { | 333 | { |
341 | parent::afterSave($insert, $changedAttributes); | 334 | parent::afterSave($insert, $changedAttributes); |
342 | 335 | ||
336 | + | ||
337 | + if(!empty($this->categories)){ | ||
338 | + $categories = Category::findAll($this->categories); | ||
339 | + $this->unlinkAll('categories', true); | ||
340 | + foreach($categories as $category){ | ||
341 | + $this->link('categories', $category); | ||
342 | + } | ||
343 | + } | ||
344 | + | ||
345 | + if(!empty($this->options)){ | ||
346 | + $options = TaxOption::findAll($this->options); | ||
347 | + $this->unlinkAll('options',true); | ||
348 | + foreach($options as $option){ | ||
349 | + $this->link('options', $option); | ||
350 | + } | ||
351 | + } | ||
352 | + | ||
353 | + | ||
343 | if (!empty($this->_variants)) { | 354 | if (!empty($this->_variants)) { |
344 | $todel = []; | 355 | $todel = []; |
345 | foreach ($this->variants ?: [] as $_variant) { | 356 | foreach ($this->variants ?: [] as $_variant) { |
@@ -367,13 +378,18 @@ class Product extends \yii\db\ActiveRecord | @@ -367,13 +378,18 @@ class Product extends \yii\db\ActiveRecord | ||
367 | } | 378 | } |
368 | 379 | ||
369 | public function beforeDelete() { | 380 | public function beforeDelete() { |
370 | - ProductImage::deleteAll(['product_id' => $this->product_id]); | ||
371 | - ProductCategory::deleteAll(['product_id' => $this->product_id]); | ||
372 | - ProductVariant::deleteAll(['product_id' => $this->product_id]); | ||
373 | - ProductOption::deleteAll(['product_id' => $this->product_id]); | ||
374 | - ProductStock::deleteAll(['product_id' => $this->product_id]); | ||
375 | - Share::deleteAll(['product_id' => $this->product_id]); | ||
376 | - return true; | 381 | + if(parent::beforeDelete()){ |
382 | + $this->unlinkAll('categories', true); | ||
383 | + $this->unlinkAll('options', true); | ||
384 | + ProductImage::deleteAll(['product_id' => $this->product_id]); | ||
385 | + | ||
386 | + ProductVariant::deleteAll(['product_id' => $this->product_id]); | ||
387 | + ProductStock::deleteAll(['product_id' => $this->product_id]); | ||
388 | + Share::deleteAll(['product_id' => $this->product_id]); | ||
389 | + return true; | ||
390 | + } | ||
391 | + return false; | ||
392 | + | ||
377 | } | 393 | } |
378 | 394 | ||
379 | public function imagesUpload() | 395 | public function imagesUpload() |
common/modules/product/models/ProductVariant.php
@@ -38,6 +38,7 @@ class ProductVariant extends \yii\db\ActiveRecord | @@ -38,6 +38,7 @@ class ProductVariant extends \yii\db\ActiveRecord | ||
38 | public $translit; | 38 | public $translit; |
39 | public $translit_rubric; | 39 | public $translit_rubric; |
40 | private $data; | 40 | private $data; |
41 | + public $_options = []; | ||
41 | 42 | ||
42 | 43 | ||
43 | /** @var array $_images */ | 44 | /** @var array $_images */ |
@@ -255,8 +256,18 @@ class ProductVariant extends \yii\db\ActiveRecord | @@ -255,8 +256,18 @@ class ProductVariant extends \yii\db\ActiveRecord | ||
255 | return TaxGroup::find()->distinct()->innerJoin('tax_group_to_category', 'tax_group_to_category.tax_group_id = tax_group.tax_group_id')->where(['tax_group_to_category.category_id' => $categories])->where(['level' => $level]); | 256 | return TaxGroup::find()->distinct()->innerJoin('tax_group_to_category', 'tax_group_to_category.tax_group_id = tax_group.tax_group_id')->where(['tax_group_to_category.category_id' => $categories])->where(['level' => $level]); |
256 | } | 257 | } |
257 | 258 | ||
258 | -// public function afterSave($insert, $changedAttributes) | ||
259 | -// { | 259 | + public function afterSave($insert, $changedAttributes) |
260 | + { | ||
261 | + | ||
262 | + if(!empty($this->_options)){ | ||
263 | + $options = TaxOption::findAll($this->_options); | ||
264 | + $this->unlinkAll('options',true); | ||
265 | + foreach($options as $option){ | ||
266 | + $this->link('options', $option); | ||
267 | + } | ||
268 | + } | ||
269 | + | ||
270 | + | ||
260 | // if (!is_null($this->stocks)) { | 271 | // if (!is_null($this->stocks)) { |
261 | // //ProductStock::deleteAll(['product_variant_id' => $this->product_variant_id]); | 272 | // //ProductStock::deleteAll(['product_variant_id' => $this->product_variant_id]); |
262 | // $values = []; | 273 | // $values = []; |
@@ -266,14 +277,17 @@ class ProductVariant extends \yii\db\ActiveRecord | @@ -266,14 +277,17 @@ class ProductVariant extends \yii\db\ActiveRecord | ||
266 | // $productStock->save(); | 277 | // $productStock->save(); |
267 | // } | 278 | // } |
268 | // } | 279 | // } |
269 | -// parent::afterSave($insert, $changedAttributes); | ||
270 | -// } | 280 | + parent::afterSave($insert, $changedAttributes); |
281 | + } | ||
271 | 282 | ||
272 | public function beforeDelete() { | 283 | public function beforeDelete() { |
273 | - ProductVariantOption::deleteAll(['product_variant_id' => $this->product_variant_id]); | ||
274 | - ProductImage::deleteAll(['product_variant_id' => $this->product_variant_id]); | ||
275 | - ProductStock::deleteAll(['product_variant_id' => $this->product_variant_id]); | ||
276 | - return true; | 284 | + if(parent::beforeDelete()){ |
285 | + ProductVariantOption::deleteAll(['product_variant_id' => $this->product_variant_id]); | ||
286 | + ProductImage::deleteAll(['product_variant_id' => $this->product_variant_id]); | ||
287 | + ProductStock::deleteAll(['product_variant_id' => $this->product_variant_id]); | ||
288 | + return true; | ||
289 | + } | ||
290 | + return false; | ||
277 | } | 291 | } |
278 | 292 | ||
279 | public function imagesUpload() | 293 | public function imagesUpload() |
frontend/config/main.php
@@ -76,6 +76,7 @@ return [ | @@ -76,6 +76,7 @@ return [ | ||
76 | 'blog' => 'articles/index', | 76 | 'blog' => 'articles/index', |
77 | 'blog/<translit:[\w\-]+>-<id:\d+>' => 'articles/show', | 77 | 'blog/<translit:[\w\-]+>-<id:\d+>' => 'articles/show', |
78 | 'event' => 'event/index', | 78 | 'event' => 'event/index', |
79 | + 'event/sale/<percent:[\d\-]+>' => 'event/sale', | ||
79 | 'event/<alias:[\w\-]+>' => 'event/show', | 80 | 'event/<alias:[\w\-]+>' => 'event/show', |
80 | ], | 81 | ], |
81 | 'class' => 'common\components\urlManager\LangUrlManager', | 82 | 'class' => 'common\components\urlManager\LangUrlManager', |
frontend/views/catalog/_product_item.php
@@ -17,6 +17,16 @@ use yii\helpers\Url; | @@ -17,6 +17,16 @@ use yii\helpers\Url; | ||
17 | 'catalog/product', | 17 | 'catalog/product', |
18 | 'product' => $model->alias | 18 | 'product' => $model->alias |
19 | ]) ?>"> | 19 | ]) ?>"> |
20 | + <?php | ||
21 | + foreach($model->events as $event){ | ||
22 | + if($event->banner){ | ||
23 | + echo \common\components\artboximage\ArtboxImageHelper::getImage($event->getImageUrl('banner'), 'banner_list',[ | ||
24 | + 'class' => 'banner-in-list' | ||
25 | + ]); | ||
26 | + } | ||
27 | + } | ||
28 | + | ||
29 | + ?> | ||
20 | <?= \common\components\artboximage\ArtboxImageHelper::getImage($model->enabledVariants[ 0 ]->imageUrl, 'list', [ | 30 | <?= \common\components\artboximage\ArtboxImageHelper::getImage($model->enabledVariants[ 0 ]->imageUrl, 'list', [ |
21 | 'alt' => $model->category->name . ' ' . $model->fullname, | 31 | 'alt' => $model->category->name . ' ' . $model->fullname, |
22 | 'title' => $model->category->name . ' ' . $model->fullname, | 32 | 'title' => $model->category->name . ' ' . $model->fullname, |
@@ -37,6 +47,15 @@ use yii\helpers\Url; | @@ -37,6 +47,15 @@ use yii\helpers\Url; | ||
37 | </div> | 47 | </div> |
38 | </div> | 48 | </div> |
39 | <div class="price"> | 49 | <div class="price"> |
50 | + | ||
51 | + <?php if($model->variant->price_old){?> | ||
52 | + <div class="dlexfduinxipi"> | ||
53 | + <span class="main"> | ||
54 | + <s><?= $model->variant->price_old ?> | ||
55 | + <span class="currency">грн</span><s> | ||
56 | + </span> | ||
57 | + </div> | ||
58 | + <?php }?> | ||
40 | <div class="dlexfduinxipi"> | 59 | <div class="dlexfduinxipi"> |
41 | Цена: | 60 | Цена: |
42 | <span class="main"> | 61 | <span class="main"> |
frontend/views/catalog/product.php
@@ -207,7 +207,7 @@ FlipclockAsset::register($this); | @@ -207,7 +207,7 @@ FlipclockAsset::register($this); | ||
207 | — Самовывоз Новая Почта - 55 грн.<br> | 207 | — Самовывоз Новая Почта - 55 грн.<br> |
208 | — Курьер Новая Почта - 88 грн.<br> | 208 | — Курьер Новая Почта - 88 грн.<br> |
209 | — Курьер «ИнТайм» - 60 грн.</p> | 209 | — Курьер «ИнТайм» - 60 грн.</p> |
210 | - <?php if($product->variant->price > 1000){?> | 210 | + <?php if($product->variant->price >= 1000){?> |
211 | <p> | 211 | <p> |
212 | <span class="strong black">Киев</span>:<br> | 212 | <span class="strong black">Киев</span>:<br> |
213 | — Курьер - <s>50 грн.</s> | 213 | — Курьер - <s>50 грн.</s> |
frontend/views/layouts/main.php
@@ -23,10 +23,9 @@ use common\models\Event; | @@ -23,10 +23,9 @@ use common\models\Event; | ||
23 | 23 | ||
24 | <meta charset="<?= Yii::$app->charset ?>"/> | 24 | <meta charset="<?= Yii::$app->charset ?>"/> |
25 | <?= Html::csrfMetaTags () ?> | 25 | <?= Html::csrfMetaTags () ?> |
26 | - <meta name="robots" content="noindex,nofollow"> | ||
27 | - <?php /*?><title><?= Seo::widget([ 'row'=>'title'])?></title> | 26 | + <title><?= Seo::widget([ 'row'=>'title'])?></title> |
28 | <?= Seo::widget([ 'row'=>'description'])?> | 27 | <?= Seo::widget([ 'row'=>'description'])?> |
29 | - <?= Seo::widget([ 'row'=>'meta'])?> */?> | 28 | + <?= Seo::widget([ 'row'=>'meta'])?> |
30 | <link rel="icon" type="image/vnd.microsoft.icon" href="/images/icon.ico"/> | 29 | <link rel="icon" type="image/vnd.microsoft.icon" href="/images/icon.ico"/> |
31 | <link type="image/ico" href="http://www.linija-svitla.ua/images/icon.ico" rel="SHORTCUT ICON"/> | 30 | <link type="image/ico" href="http://www.linija-svitla.ua/images/icon.ico" rel="SHORTCUT ICON"/> |
32 | <link rel="icon" href="http://www.linija-svitla.ua/images/icon.ico" type="image/x-icon"/> | 31 | <link rel="icon" href="http://www.linija-svitla.ua/images/icon.ico" type="image/x-icon"/> |
frontend/views/search/_product_search_item.php deleted
1 | -<?php | ||
2 | - /** | ||
3 | - * @var $model common\modules\product\models\Product | ||
4 | - */ | ||
5 | -use yii\helpers\Html; | ||
6 | -use yii\helpers\Url; | ||
7 | -?> | ||
8 | -<div class="catalog_item"> | ||
9 | - <div class="wrapper"> | ||
10 | - <div class="item_container" > | ||
11 | - <input class="prodInfo" type="hidden" value="[]"> | ||
12 | - <div class="title"> | ||
13 | - <?= Html::a( $model->name, Url::to(['catalog/product', 'product' => $model->alias]), ['class'=>'btn-product-details'] )?> | ||
14 | - </div> | ||
15 | - <div class="img"> | ||
16 | - <a class="btn-product-details" href="<?= Url::to([ | ||
17 | - 'catalog/product', | ||
18 | - 'product' => $model->alias | ||
19 | - ]) ?>"> | ||
20 | - <?= \common\components\artboximage\ArtboxImageHelper::getImage($model->enabledVariants[ 0 ]->imageUrl, 'list', [ | ||
21 | - 'alt' => $model->category->name . ' ' . $model->fullname, | ||
22 | - 'title' => $model->category->name . ' ' . $model->fullname, | ||
23 | - 'class' => 'selected' | ||
24 | - ]) ?> | ||
25 | - </a> | ||
26 | - <div class="info_icons"> | ||
27 | - <a href="#" class="btn buy_button" data-toggle="modal" data-target="#buyForm" data-id="<?=$model->variant->product_variant_id; ?>" lang="145">Купить</a> | ||
28 | - <ul class="ul wishlike_block hidden"> | ||
29 | - <li class="compare hidden"> | ||
30 | - <a onclick="add2compare(); return false;" class="compare compare_text_link_3631483" href="#">К сравнению</a> | ||
31 | - <span class="icon"></span> | ||
32 | - </li> | ||
33 | - <li class="like hidden"> | ||
34 | - <a class="like like_text_link_3631483" href="#">В избранное</a><span class="icon"></span> | ||
35 | - </li> | ||
36 | - </ul> | ||
37 | - </div> | ||
38 | - </div> | ||
39 | - <div class="price"> | ||
40 | - <div class="dlexfduinxipi"> | ||
41 | - Цена: | ||
42 | - <span class="main"> | ||
43 | - <?= $model->variant->price ?> | ||
44 | - <span class="currency">грн</span> | ||
45 | - </span> | ||
46 | - </div> | ||
47 | - </div> | ||
48 | - <div class="additional_info params"> | ||
49 | - <div class="block_title">Особенности</div> | ||
50 | - <div class="descr"> | ||
51 | - <div class="info"> | ||
52 | - <ul class="sv"> | ||
53 | - | ||
54 | - <li><span>Бренд:</span> <?= $model->brand->name ?></li> | ||
55 | - | ||
56 | - <?php foreach($model->getActiveProperties($model->category->category_id) as $group): ?> | ||
57 | - <li><span><?= $group->name ?> <?php foreach($group->_options as $option) : ?> </span><?= $option->ValueRenderHTML ?><?php endforeach ?></li> | ||
58 | - <?php endforeach; ?> | ||
59 | - | ||
60 | - | ||
61 | - </ul> | ||
62 | - </div> | ||
63 | - <div class="clearfix"></div> | ||
64 | - </div> | ||
65 | - <div class="price" style="display: none;"> | ||
66 | - <div class="dlexfduinxipi"> | ||
67 | - Цена: | ||
68 | - <span class="main"> | ||
69 | - <?php | ||
70 | - | ||
71 | - echo '<div class="cost-block" itemprop="offers" itemscope itemtype="http://schema.org/Offer">'; | ||
72 | - | ||
73 | - // есть скидка | ||
74 | - echo '<p class="cost">'; | ||
75 | - if($model->enabledVariants[ 0 ]->price_old != 0 && $model->enabledVariants[ 0 ]->price_old != $model->enabledVariants[ 0 ]->price) { | ||
76 | - echo '<strike><span id=\'old_cost\' itemprop="price">' . $model->enabledVariants[0]->price_old . '</span> грн.</strike> '; | ||
77 | - echo $model->enabledVariants[0]->price . ' <span>грн.</span></p>'; | ||
78 | - } else { | ||
79 | - echo '<span itemprop="price">'.$model->enabledVariants[0]->price . ' </span><span>грн.</span></p>'; | ||
80 | - } | ||
81 | - echo '<meta itemprop="priceCurrency" content = "UAH">'; | ||
82 | - echo '</div>'; | ||
83 | - | ||
84 | - ?> | ||
85 | - </span> | ||
86 | - </div> | ||
87 | - </div> | ||
88 | - </div> | ||
89 | - <div class="opacity_bg"></div> | ||
90 | - </div> | ||
91 | - </div> | ||
92 | -</div> | ||
93 | \ No newline at end of file | 0 | \ No newline at end of file |
frontend/views/search/index.php
@@ -84,8 +84,9 @@ $this->params['breadcrumbs'][] = 'Поиск'; | @@ -84,8 +84,9 @@ $this->params['breadcrumbs'][] = 'Поиск'; | ||
84 | <?= ListView::widget([ | 84 | <?= ListView::widget([ |
85 | 'dataProvider' => $productProvider, | 85 | 'dataProvider' => $productProvider, |
86 | 'itemView' => function ($model, $key, $index, $widget) { | 86 | 'itemView' => function ($model, $key, $index, $widget) { |
87 | - return $this->render('_product_search_item',[ | ||
88 | - 'model' => $model | 87 | + return $this->render('../catalog/_product_item',[ |
88 | + 'model' => $model, | ||
89 | + 'category' => $model->category | ||
89 | ]); | 90 | ]); |
90 | }, | 91 | }, |
91 | 'layout' => "{items}<div class=\"clearfix\"></div>{pager}", | 92 | 'layout' => "{items}<div class=\"clearfix\"></div>{pager}", |
frontend/web/css/css_header.css
@@ -14544,4 +14544,8 @@ ul.product-special li.promo div{ | @@ -14544,4 +14544,8 @@ ul.product-special li.promo div{ | ||
14544 | -ms-filter: grayscale(0%); | 14544 | -ms-filter: grayscale(0%); |
14545 | -o-filter: grayscale(0%); | 14545 | -o-filter: grayscale(0%); |
14546 | -moz-filter: grayscale(0%); | 14546 | -moz-filter: grayscale(0%); |
14547 | +} | ||
14548 | + | ||
14549 | +.banner-in-list{ | ||
14550 | + margin: 0 !important; | ||
14547 | } | 14551 | } |
14548 | \ No newline at end of file | 14552 | \ No newline at end of file |