Commit cf07505dd1530bb13f3919b4962bd994babd72b9
1 parent
e2128676
Karnovsky 06052016 1200
Showing
7 changed files
with
71 additions
and
36 deletions
Show diff stats
common/modules/product/controllers/ManageController.php
| @@ -127,23 +127,22 @@ class ManageController extends Controller | @@ -127,23 +127,22 @@ class ManageController extends Controller | ||
| 127 | if ($model->load(Yii::$app->request->post())) { | 127 | if ($model->load(Yii::$app->request->post())) { |
| 128 | $model->imagesUpload = UploadedFile::getInstances($model, 'imagesUpload'); | 128 | $model->imagesUpload = UploadedFile::getInstances($model, 'imagesUpload'); |
| 129 | 129 | ||
| 130 | - $model->save(); | ||
| 131 | - | ||
| 132 | - foreach($model->images as $image) { | ||
| 133 | - $image->delete(); | ||
| 134 | - } | ||
| 135 | - | ||
| 136 | - if ($model->imagesUpload) { | ||
| 137 | - foreach ($model->imagesUpload as $image) { | ||
| 138 | - $imageModel = new ProductImage(); | ||
| 139 | - $imageModel->product_id = $model->product_id; | ||
| 140 | - $imageModel->image = $image->name; | ||
| 141 | - $imageModel->save(); | 130 | + if ($model->save()) { |
| 131 | + foreach ($model->images as $image) { | ||
| 132 | + $image->delete(); | ||
| 142 | } | 133 | } |
| 143 | - } | ||
| 144 | 134 | ||
| 145 | - return $this->redirect(['view', 'id' => $model->product_id]); | 135 | + if ( ($images = $model->imagesUpload()) !== FALSE) { |
| 136 | + foreach ($images as $image) { | ||
| 137 | + $imageModel = new ProductImage(); | ||
| 138 | + $imageModel->product_id = $model->product_id; | ||
| 139 | + $imageModel->image = $image; | ||
| 140 | + $imageModel->save(); | ||
| 141 | + } | ||
| 142 | + } | ||
| 146 | 143 | ||
| 144 | + return $this->redirect(['view', 'id' => $model->product_id]); | ||
| 145 | + } | ||
| 147 | } else { | 146 | } else { |
| 148 | return $this->render('create', [ | 147 | return $this->render('create', [ |
| 149 | 'model' => $model, | 148 | 'model' => $model, |
| @@ -164,22 +163,22 @@ class ManageController extends Controller | @@ -164,22 +163,22 @@ class ManageController extends Controller | ||
| 164 | if ($model->load(Yii::$app->request->post())) { | 163 | if ($model->load(Yii::$app->request->post())) { |
| 165 | $model->imagesUpload = UploadedFile::getInstances($model, 'imagesUpload'); | 164 | $model->imagesUpload = UploadedFile::getInstances($model, 'imagesUpload'); |
| 166 | 165 | ||
| 167 | - $model->save(); | ||
| 168 | - | ||
| 169 | - foreach($model->images as $image) { | ||
| 170 | - $image->delete(); | ||
| 171 | - } | 166 | + if ($model->save()) { |
| 167 | + foreach ($model->images as $image) { | ||
| 168 | + $image->delete(); | ||
| 169 | + } | ||
| 172 | 170 | ||
| 173 | - if ($model->imagesUpload) { | ||
| 174 | - foreach ($model->imagesUpload as $image) { | ||
| 175 | - $imageModel = new ProductImage(); | ||
| 176 | - $imageModel->product_id = $model->product_id; | ||
| 177 | - $imageModel->image = $image->name; | ||
| 178 | - $imageModel->save(); | 171 | + if ( ($images = $model->imagesUpload()) !== FALSE) { |
| 172 | + foreach ($images as $image) { | ||
| 173 | + $imageModel = new ProductImage(); | ||
| 174 | + $imageModel->product_id = $model->product_id; | ||
| 175 | + $imageModel->image = $image; | ||
| 176 | + $imageModel->save(); | ||
| 177 | + } | ||
| 179 | } | 178 | } |
| 180 | - } | ||
| 181 | 179 | ||
| 182 | - return $this->redirect(['view', 'id' => $model->product_id]); | 180 | + return $this->redirect(['view', 'id' => $model->product_id]); |
| 181 | + } | ||
| 183 | } else { | 182 | } else { |
| 184 | $groups = $model->category->getTaxGroups(); | 183 | $groups = $model->category->getTaxGroups(); |
| 185 | 184 | ||
| @@ -203,6 +202,17 @@ class ManageController extends Controller | @@ -203,6 +202,17 @@ class ManageController extends Controller | ||
| 203 | return $this->redirect(['index']); | 202 | return $this->redirect(['index']); |
| 204 | } | 203 | } |
| 205 | 204 | ||
| 205 | + public function actionDelimg($id) | ||
| 206 | + { | ||
| 207 | + $image = ProductImage::findOne($id); | ||
| 208 | + | ||
| 209 | + if ($image) { | ||
| 210 | + $image->delete(); | ||
| 211 | + } | ||
| 212 | + | ||
| 213 | + return $this->redirect(['index']); | ||
| 214 | + } | ||
| 215 | + | ||
| 206 | public function actionImport() { | 216 | public function actionImport() { |
| 207 | $searchModel = new RemoteProductsSearch(); | 217 | $searchModel = new RemoteProductsSearch(); |
| 208 | $dataProvider = $searchModel->search(Yii::$app->request->queryParams); | 218 | $dataProvider = $searchModel->search(Yii::$app->request->queryParams); |
common/modules/product/models/Product.php
| @@ -229,10 +229,19 @@ class Product extends \yii\db\ActiveRecord | @@ -229,10 +229,19 @@ class Product extends \yii\db\ActiveRecord | ||
| 229 | public function imagesUpload() | 229 | public function imagesUpload() |
| 230 | { | 230 | { |
| 231 | if ($this->validate()) { | 231 | if ($this->validate()) { |
| 232 | + $images = []; | ||
| 232 | foreach ($this->imagesUpload as $image) { | 233 | foreach ($this->imagesUpload as $image) { |
| 233 | - $image->saveAs(Yii::getAlias('@frontend/web/images/products/original/' . $image->baseName . '.' . $image->extension)); | 234 | + $imageName = $image->baseName .'.'. $image->extension; |
| 235 | + $i = 0; | ||
| 236 | + while(file_exists(Yii::getAlias('@frontend/web/images/products/' . $imageName))) { | ||
| 237 | + $i++; | ||
| 238 | + $imageName = $image->baseName .'_'. $i .'.'. $image->extension; | ||
| 239 | + } | ||
| 240 | + | ||
| 241 | + $image->saveAs(Yii::getAlias('@frontend/web/images/products/' .$imageName)); | ||
| 242 | + $images[] = $imageName; | ||
| 234 | } | 243 | } |
| 235 | - return true; | 244 | + return $images; |
| 236 | } else { | 245 | } else { |
| 237 | return false; | 246 | return false; |
| 238 | } | 247 | } |
| @@ -247,4 +256,18 @@ class Product extends \yii\db\ActiveRecord | @@ -247,4 +256,18 @@ class Product extends \yii\db\ActiveRecord | ||
| 247 | } | 256 | } |
| 248 | return $op; | 257 | return $op; |
| 249 | } | 258 | } |
| 259 | + | ||
| 260 | + public function getImagesConfig() { | ||
| 261 | + $op = []; | ||
| 262 | + if ($this->images) { | ||
| 263 | + foreach ($this->images as $image) { | ||
| 264 | + $op[] = [ | ||
| 265 | + 'caption' => $image->image, | ||
| 266 | + 'width' => '120px', | ||
| 267 | + 'url' => \yii\helpers\Url::to(['/product/manage/delimg', 'id' => $image->product_image_id]) | ||
| 268 | + ]; | ||
| 269 | + } | ||
| 270 | + } | ||
| 271 | + return $op; | ||
| 272 | + } | ||
| 250 | } | 273 | } |
common/modules/product/models/ProductImage.php
| @@ -97,7 +97,7 @@ class ProductImage extends \yii\db\ActiveRecord | @@ -97,7 +97,7 @@ class ProductImage extends \yii\db\ActiveRecord | ||
| 97 | */ | 97 | */ |
| 98 | public function getImageFile() | 98 | public function getImageFile() |
| 99 | { | 99 | { |
| 100 | - return isset($this->image) ? Yii::$app->params['uploadPath'] . $this->image : null; | 100 | + return isset($this->image) ? '/images/products/' . $this->image : null; |
| 101 | } | 101 | } |
| 102 | 102 | ||
| 103 | /** | 103 | /** |
| @@ -107,8 +107,7 @@ class ProductImage extends \yii\db\ActiveRecord | @@ -107,8 +107,7 @@ class ProductImage extends \yii\db\ActiveRecord | ||
| 107 | public function getImageUrl() | 107 | public function getImageUrl() |
| 108 | { | 108 | { |
| 109 | // return a default image placeholder if your source image is not found | 109 | // return a default image placeholder if your source image is not found |
| 110 | - $image = isset($this->image) ? $this->image : 'default.jpg'; | ||
| 111 | - return Yii::getAlias('/images/products/original/' . $image); | 110 | + return isset($this->image) ? '/images/products/'. $this->image : 'default.jpg'; |
| 112 | } | 111 | } |
| 113 | 112 | ||
| 114 | /** | 113 | /** |
common/modules/product/views/manage/_form.php
| @@ -55,11 +55,13 @@ use kartik\select2\Select2; | @@ -55,11 +55,13 @@ use kartik\select2\Select2; | ||
| 55 | 'pluginOptions' => [ | 55 | 'pluginOptions' => [ |
| 56 | 'allowedFileExtensions' => ['jpg', 'gif', 'png'], | 56 | 'allowedFileExtensions' => ['jpg', 'gif', 'png'], |
| 57 | 'initialPreview' => !empty($model->imagesHTML) ? $model->imagesHTML : [], | 57 | 'initialPreview' => !empty($model->imagesHTML) ? $model->imagesHTML : [], |
| 58 | + 'initialPreviewConfig' => $model->imagesConfig, | ||
| 58 | 'overwriteInitial' => false, | 59 | 'overwriteInitial' => false, |
| 59 | - 'showRemove' => true, | 60 | + 'showRemove' => false, |
| 60 | 'showUpload' => false, | 61 | 'showUpload' => false, |
| 62 | +// 'uploadUrl' => empty($model->product_id) ? null : \yii\helpers\Url::to(['/product/manage/uploadImage']), | ||
| 63 | + 'uploadAsync' => !empty($model->product_id), | ||
| 61 | 'previewFileType' => 'image', | 64 | 'previewFileType' => 'image', |
| 62 | -// 'uploadUrl' => \yii\helpers\Url::to(['/site/file-upload']) | ||
| 63 | ], | 65 | ], |
| 64 | ]); ?> | 66 | ]); ?> |
| 65 | 67 |
common/modules/product/views/manage/view.php
| @@ -33,6 +33,7 @@ $this->params['breadcrumbs'][] = $this->title; | @@ -33,6 +33,7 @@ $this->params['breadcrumbs'][] = $this->title; | ||
| 33 | 'fullname', | 33 | 'fullname', |
| 34 | 'brand.name', | 34 | 'brand.name', |
| 35 | 'category.name', | 35 | 'category.name', |
| 36 | + 'image.imageUrl:image' | ||
| 36 | ], | 37 | ], |
| 37 | ]) ?> | 38 | ]) ?> |
| 38 | 39 |
frontend/config/main.php
| @@ -47,7 +47,7 @@ return [ | @@ -47,7 +47,7 @@ return [ | ||
| 47 | 'sourceUrl' => '@web/images', | 47 | 'sourceUrl' => '@web/images', |
| 48 | 'sizes' => [ | 48 | 'sizes' => [ |
| 49 | 'brandlist' => [130, 70], | 49 | 'brandlist' => [130, 70], |
| 50 | - 'product_item' => [130, 70], | 50 | + 'product' => [128, 128], |
| 51 | 'product_list' => [130, 70], | 51 | 'product_list' => [130, 70], |
| 52 | 'product_list2' => [130, 70], | 52 | 'product_list2' => [130, 70], |
| 53 | 'mainmenu' => [160, 170], | 53 | 'mainmenu' => [160, 170], |
frontend/views/catalog/product.php
| @@ -16,7 +16,7 @@ $this->params['breadcrumbs'][] = $product->name .' #'. $product->variant->sku; | @@ -16,7 +16,7 @@ $this->params['breadcrumbs'][] = $product->name .' #'. $product->variant->sku; | ||
| 16 | <?php if (empty($product->image)) :?> | 16 | <?php if (empty($product->image)) :?> |
| 17 | <img src="/images/no_photo_big.png" alt="<?= $product->name?>"> | 17 | <img src="/images/no_photo_big.png" alt="<?= $product->name?>"> |
| 18 | <?php else :?> | 18 | <?php else :?> |
| 19 | - <img src="/images/<?= $product->image->image?>" alt="<?= $product->image->alt ? $product->image->alt : $product->name?>"> | 19 | + <?= $product->image->imageUrl ? Yii::$app->imageCache->thumb($product->image->imageUrl, 'product') : ''?> |
| 20 | <?php endif?> | 20 | <?php endif?> |
| 21 | 21 | ||
| 22 | <!--<span class="new">НОВИНКА</span> | 22 | <!--<span class="new">НОВИНКА</span> |