From 612a4ea17131a8fe4ebf5ec1c25d25a7c6489839 Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Fri, 16 Sep 2016 14:05:19 +0300 Subject: [PATCH] big commti --- backend/controllers/BrandController.php | 30 ++---------------------------- backend/views/event/_form.php | 2 +- backend/views/slider-image/_form.php | 1 + common/behaviors/SaveImgBehavior.php | 65 +++++++++++++++++++++++++++++++++++------------------------------ common/models/Articles.php | 4 +++- common/models/Banner.php | 4 +++- common/models/Bg.php | 4 +++- common/models/Event.php | 14 +++++--------- common/models/SliderImage.php | 4 +++- common/modules/product/models/Brand.php | 19 +++++++++++++++---- common/modules/product/models/Product.php | 24 ++++++++++++++---------- frontend/web/css/css_header.css | 3 +++ frontend/widgets/views/slider.php | 20 +++++++++++--------- 13 files changed, 99 insertions(+), 95 deletions(-) diff --git a/backend/controllers/BrandController.php b/backend/controllers/BrandController.php index c30fd00..c23a105 100755 --- a/backend/controllers/BrandController.php +++ b/backend/controllers/BrandController.php @@ -80,20 +80,7 @@ class BrandController extends Controller public function actionCreate() { $model = new Brand(); - if ($model->load(Yii::$app->request->post())) { - if ( ($image = UploadedFile::getInstance($model, 'image')) ) { - $model->image = $image->name; - } - if ($model->save() && $image) { - - $imgDir = Yii::getAlias('@storage/brand/'); - - if(!is_dir($imgDir)) { - mkdir($imgDir, 0755, true); - } - - $image->saveAs(Yii::getAlias('@storage/brand/' . $image->name)); - } + if ($model->load(Yii::$app->request->post()) && $model->save()) { return is_null(Yii::$app->request->post('create_and_new')) ? $this->redirect(['view', 'id' => $model->brand_id]) : $this->redirect(array_merge(['create'], Yii::$app->request->queryParams)); } else { @@ -113,20 +100,7 @@ class BrandController extends Controller { $model = $this->findModel($id); - if ($model->load(Yii::$app->request->post())) { - if ( ($image = UploadedFile::getInstance($model, 'image')) ) { - $model->image = $image->name; - } - if ($model->save() && $image) { - - $imgDir = Yii::getAlias('@storage/brands/'); - - if(!is_dir($imgDir)) { - mkdir($imgDir, 0755, true); - } - - $image->saveAs(Yii::getAlias('@storage/brands/' . $image->name)); - } + if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->brand_id]); } else { diff --git a/backend/views/event/_form.php b/backend/views/event/_form.php index 6891637..8acfb7c 100755 --- a/backend/views/event/_form.php +++ b/backend/views/event/_form.php @@ -67,7 +67,7 @@ use mihaildev\elfinder\ElFinder; ], 'pluginOptions' => [ 'allowedFileExtensions' => ['jpg', 'gif', 'png'], - 'initialPreview' => !empty($model->bannerUrl) ? \common\components\artboximage\ArtboxImageHelper::getImage($model->bannerUrl, 'list') : '', + 'initialPreview' => !empty($model->getImageUrl('banner')) ? \common\components\artboximage\ArtboxImageHelper::getImage($model->getImageUrl('banner'), 'list') : '', 'overwriteInitial' => true, 'showRemove' => false, 'showUpload' => false, diff --git a/backend/views/slider-image/_form.php b/backend/views/slider-image/_form.php index 46b9940..485facf 100755 --- a/backend/views/slider-image/_form.php +++ b/backend/views/slider-image/_form.php @@ -12,6 +12,7 @@ use kartik\date\DatePicker; /* @var $form yii\widgets\ActiveForm */ ?> +
['enctype' => 'multipart/form-data']]); ?> diff --git a/common/behaviors/SaveImgBehavior.php b/common/behaviors/SaveImgBehavior.php index 2c16501..5f05708 100644 --- a/common/behaviors/SaveImgBehavior.php +++ b/common/behaviors/SaveImgBehavior.php @@ -14,8 +14,8 @@ use yii\web\UploadedFile; class SaveImgBehavior extends Behavior { - - public $directory; + public $fields; + //public $directory; public function events() { @@ -27,57 +27,62 @@ class SaveImgBehavior extends Behavior public function beforeUpdate($event) { + foreach($this->fields as $field){ + if ( ($image = UploadedFile::getInstance($this->owner, $field['name'])) ) { + $this->owner->image = $image->name; + } + if(!$this->owner->image){ + $this->owner->image = $this->owner->getOldAttribute($field['name']); + } - if ( ($image = UploadedFile::getInstance($this->owner, 'image')) ) { - $this->owner->image = $image->name; - } - if(!$this->owner->image){ - $this->owner->image = $this->owner->getOldAttribute('image'); - } + if ($image) { + $imgDir = \Yii::getAlias('@storage/'.$field['directory'].'/'); + if(!is_dir($imgDir)) { + mkdir($imgDir, 0755, true); + } - if ($image) { - $imgDir = \Yii::getAlias('@storage/'.$this->directory.'/'); - - if(!is_dir($imgDir)) { - mkdir($imgDir, 0755, true); + $image->saveAs(\Yii::getAlias('@storage/'.$field['directory'].'/' . $image->name)); } - - $image->saveAs(\Yii::getAlias('@storage/'.$this->directory.'/' . $image->name)); } + + + } public function beforeInsert($event) { + foreach($this->fields as $field){ + if ( ($image = UploadedFile::getInstance($this->owner, $field['name'])) ) { + $this->owner->image = $image->name; + } - if ( ($image = UploadedFile::getInstance($this->owner, 'image')) ) { - $this->owner->image = $image->name; - } + if ($image) { + $imgDir = \Yii::getAlias('@storage/'.$field['directory'].'/'); - if ($image) { - $imgDir = \Yii::getAlias('@storage/'.$this->directory.'/'); + if(!is_dir($imgDir)) { + mkdir($imgDir, 0755, true); + } - if(!is_dir($imgDir)) { - mkdir($imgDir, 0755, true); + $image->saveAs(\Yii::getAlias('@storage/'.$field['directory'].'/' . $image->name)); } - - $image->saveAs(\Yii::getAlias('@storage/'.$this->directory.'/' . $image->name)); } } - - - public function getImageFile() { - return empty($this->owner->image) ? null : '/storage/'.$this->directory.'/'. $this->owner->image; + public function getImageFile($image = 'image') { + return empty($this->owner->$image) ? null : '/storage/'.$this->fields[0]['directory'].'/'. $this->owner->$image; } - public function getImageUrl() { - return empty($this->owner->image) ? null : '/storage/'.$this->directory.'/'. $this->owner->image; + public function getImageUrl($image = 'image') { + return empty($this->owner->$image) ? null : '/storage/'.$this->fields[0]['directory'].'/'. $this->owner->$image; } + + + } \ No newline at end of file diff --git a/common/models/Articles.php b/common/models/Articles.php index bc99142..e68dc66 100755 --- a/common/models/Articles.php +++ b/common/models/Articles.php @@ -44,7 +44,9 @@ class Articles extends \yii\db\ActiveRecord return [ [ 'class' => SaveImgBehavior::className(), - 'directory' => 'articles' + 'fields' => [ + ['name'=>'image','directory' => 'articles' ] + ] ], 'slug' => [ 'class' => 'common\behaviors\Slug', diff --git a/common/models/Banner.php b/common/models/Banner.php index da6de11..b607360 100755 --- a/common/models/Banner.php +++ b/common/models/Banner.php @@ -37,7 +37,9 @@ class Banner extends \yii\db\ActiveRecord return [ [ 'class' => SaveImgBehavior::className(), - 'directory' => 'banner' + 'fields' => [ + ['name'=>'image','directory' => 'banner' ] + ] ], ]; } diff --git a/common/models/Bg.php b/common/models/Bg.php index 405ad39..da07740 100755 --- a/common/models/Bg.php +++ b/common/models/Bg.php @@ -21,7 +21,9 @@ class Bg extends \yii\db\ActiveRecord return [ [ 'class' => SaveImgBehavior::className(), - 'directory' => 'bg' + 'fields' => [ + ['name'=>'image','directory' => 'bg' ] + ] ], ]; } diff --git a/common/models/Event.php b/common/models/Event.php index 922247c..81ba40e 100755 --- a/common/models/Event.php +++ b/common/models/Event.php @@ -47,7 +47,10 @@ class Event extends \yii\db\ActiveRecord return [ [ 'class' => SaveImgBehavior::className(), - 'directory' => 'event' + 'fields' => [ + ['name'=>'imageUpload','directory' => 'event' ], + ['name'=>'banner','directory' => 'event' ], + ] ], TimestampBehavior::className(), 'slug' => [ @@ -131,17 +134,10 @@ class Event extends \yii\db\ActiveRecord } - public function getBannerFile() { - return empty($this->image) ? null : Yii::getAlias('@imagesDir/event/'. $this->banner); - } - public function getProducts(){ return $this->hasMany(Product::className(),['product_id' => 'product_id'] )->viaTable('events_to_products', ['event_id' => 'event_id']); } - public function getBannerUrl() - { - return empty($this->image) ? null : Yii::getAlias('@imagesUrl/event/' . $this->banner); - } + } diff --git a/common/models/SliderImage.php b/common/models/SliderImage.php index 7720fe5..a4e91e5 100755 --- a/common/models/SliderImage.php +++ b/common/models/SliderImage.php @@ -39,7 +39,9 @@ class SliderImage extends \yii\db\ActiveRecord return [ [ 'class' => SaveImgBehavior::className(), - 'directory' => 'slider' + 'fields' => [ + ['name'=>'image','directory' => 'slider' ] + ] ] ]; } diff --git a/common/modules/product/models/Brand.php b/common/modules/product/models/Brand.php index 4ccfba4..efb9e49 100755 --- a/common/modules/product/models/Brand.php +++ b/common/modules/product/models/Brand.php @@ -2,6 +2,7 @@ namespace common\modules\product\models; +use common\behaviors\SaveImgBehavior; use common\behaviors\Slug; use common\modules\rubrication\behaviors\ArtboxSynonymBehavior; use yii\web\UploadedFile; @@ -40,9 +41,19 @@ class Brand extends \yii\db\ActiveRecord } + /** + * @inheritdoc + */ + public function behaviors() { return [ + [ + 'class' => SaveImgBehavior::className(), + 'fields' => [ + ['name'=>'image','directory' => 'brands' ] + ] + ], 'slug' => [ 'class' => 'common\behaviors\Slug', 'in_attribute' => 'name', @@ -101,11 +112,11 @@ class Brand extends \yii\db\ActiveRecord } public function getImageFile() { - return empty($this->image) ? null : Yii::getAlias('@imagesDir/brands/'. $this->image); + return empty($this->image) ? null : '/storage/brands/'. $this->image; } - public function getImageUrl() - { - return empty($this->image) ? null : Yii::getAlias('@imagesUrl/brands/' . $this->image); + public function getImageUrl() { + return empty($this->image) ? null : '/storage/brands/'. $this->image; } + } diff --git a/common/modules/product/models/Product.php b/common/modules/product/models/Product.php index 65d3ea6..a2e648b 100755 --- a/common/modules/product/models/Product.php +++ b/common/modules/product/models/Product.php @@ -303,20 +303,24 @@ class Product extends \yii\db\ActiveRecord parent::afterSave($insert, $changedAttributes); - $this->unlinkAll('categories', true); - $this->unlinkAll('options',true); - + if(!empty($this->categories)){ + $categories = Category::findAll($this->categories); + $this->unlinkAll('categories', true); + foreach($categories as $category){ + $this->link('categories', $category); + } + } - $categories = Category::findAll($this->categories); - $options = TaxOption::findAll($this->options); - foreach($options as $option){ - $this->link('options', $option); - } - foreach($categories as $category){ - $this->link('categories', $category); + if(!empty($this->options)){ + $options = TaxOption::findAll($this->options); + $this->unlinkAll('options',true); + foreach($options as $option){ + $this->link('options', $option); + } } + if (!empty($this->_variants)) { $todel = []; foreach ($this->variants ?: [] as $_variant) { diff --git a/frontend/web/css/css_header.css b/frontend/web/css/css_header.css index 4cc431a..ad65163 100755 --- a/frontend/web/css/css_header.css +++ b/frontend/web/css/css_header.css @@ -14521,3 +14521,6 @@ ul.product-special li.promo div{ position: relative; overflow: hidden; } +.btn-fixeds{ + z-index: 1000; +} \ No newline at end of file diff --git a/frontend/widgets/views/slider.php b/frontend/widgets/views/slider.php index c69b240..088c131 100755 --- a/frontend/widgets/views/slider.php +++ b/frontend/widgets/views/slider.php @@ -6,22 +6,27 @@ use yii\helpers\Html; use yii\helpers\Url; use yii\web\View; use frontend\assets\FlipclockAsset; +FlipclockAsset::register($this); ?>