diff --git a/common/config/main.php b/common/config/main.php index 52ea47c..5b2c4c0 100755 --- a/common/config/main.php +++ b/common/config/main.php @@ -165,6 +165,11 @@ return [ 'master' => null ], ], + 'admin_thumb' => [ + 'resize' => [ + 'width' => 256, + ], + ], ] ], ], diff --git a/common/modules/product/controllers/ManageController.php b/common/modules/product/controllers/ManageController.php index c7b8643..14d362e 100755 --- a/common/modules/product/controllers/ManageController.php +++ b/common/modules/product/controllers/ManageController.php @@ -157,12 +157,17 @@ 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 = []; + 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(); // } - if ( ($images = $model->imagesUpload()) !== FALSE) { foreach ($images as $image) { $imageModel = new ProductImage(); @@ -172,6 +177,16 @@ class ManageController extends Controller } } + if ( ($images = $model->variantImagesUpload()) !== FALSE) { + foreach ($images as $product_variant_id => $image) { + $imageModel = new ProductImage(); + $imageModel->product_id = $model->product_id; + $imageModel->product_variant_id = $product_variant_id; + $imageModel->image = $image; + $imageModel->save(); + } + } + return $this->redirect(['view', 'id' => $model->product_id]); } } else { diff --git a/common/modules/product/models/Product.php b/common/modules/product/models/Product.php index da6beac..bbf0893 100755 --- a/common/modules/product/models/Product.php +++ b/common/modules/product/models/Product.php @@ -34,6 +34,7 @@ class Product extends \yii\db\ActiveRecord /** @var array $_images */ public $imagesUpload = []; + public $variantImagesUpload = []; /** * @inheritdoc */ @@ -154,7 +155,7 @@ class Product extends \yii\db\ActiveRecord */ public function getVariants() { - return $this->hasMany(ProductVariant::className(), ['product_id' => 'product_id'])->orderBy('product_variant_id'); + return $this->hasMany(ProductVariant::className(), ['product_id' => 'product_id'])->orderBy('product_variant.product_variant_id', SORT_ASC); } public function setVariants($variants) { @@ -233,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() { @@ -244,6 +245,27 @@ class Product extends \yii\db\ActiveRecord ProductVariant::deleteAll(['product_id' => $this->product_id]); } + public function variantImagesUpload() + { + if ($this->validate()) { + $images = []; + foreach ($this->variantImagesUpload as $product_variant_id => $image) { + $imageName = $image->baseName .'.'. $image->extension; + $i = 0; + while(file_exists(Yii::getAlias('@imagesDir/products/' . $imageName))) { + $i++; + $imageName = $image->baseName .'_'. $i .'.'. $image->extension; + } + + $image->saveAs(Yii::getAlias('@imagesDir/products/' .$imageName)); + $images[$product_variant_id] = $imageName; + } + return $images; + } else { + return false; + } + } + public function imagesUpload() { if ($this->validate()) { @@ -251,12 +273,12 @@ class Product extends \yii\db\ActiveRecord foreach ($this->imagesUpload as $image) { $imageName = $image->baseName .'.'. $image->extension; $i = 0; - while(file_exists(Yii::getAlias('@frontend/web/images/products/' . $imageName))) { + while(file_exists(Yii::getAlias('@imagesDir/products/' . $imageName))) { $i++; $imageName = $image->baseName .'_'. $i .'.'. $image->extension; } - $image->saveAs(Yii::getAlias('@frontend/web/images/products/' .$imageName)); + $image->saveAs(Yii::getAlias('@imagesDir/products/' .$imageName)); $images[] = $imageName; } return $images; @@ -269,7 +291,7 @@ class Product extends \yii\db\ActiveRecord $op = []; if ($this->images) { foreach ($this->images as $image) { - $op[] = Html::img($image->imageUrl); + $op[] = \common\components\artboximage\ArtboxImageHelper::getImage($image->imageUrl, 'admin_thumb'); } } return $op; diff --git a/frontend/views/catalog/product.php b/frontend/views/catalog/product.php index f2ab5ac..5971801 100755 --- a/frontend/views/catalog/product.php +++ b/frontend/views/catalog/product.php @@ -99,10 +99,10 @@ $this->registerJs ("

fullname ?>

Цветовые решения