Commit cf07505dd1530bb13f3919b4962bd994babd72b9

Authored by Karnovsky A
1 parent e2128676

Karnovsky 06052016 1200

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>