From d7c2d84eaec1c9b69d4f2c8e80d125881d3a9d8c Mon Sep 17 00:00:00 2001 From: Vitaliy Date: Thu, 30 Jun 2016 12:10:30 +0300 Subject: [PATCH] 30.06.16 slider --- backend/controllers/SliderImageController.php | 25 ++++++++++++++++++++++--- backend/views/slider-image/_form.php | 32 +++++++++++++++++--------------- common/models/SliderImage.php | 12 +++++++++--- 3 files changed, 48 insertions(+), 21 deletions(-) diff --git a/backend/controllers/SliderImageController.php b/backend/controllers/SliderImageController.php index f01301a..972b268 100755 --- a/backend/controllers/SliderImageController.php +++ b/backend/controllers/SliderImageController.php @@ -9,7 +9,7 @@ use common\models\SliderImageSearch; use yii\web\Controller; use yii\web\NotFoundHttpException; use yii\filters\VerbFilter; - +use yii\web\UploadedFile; /** * SliderImageController implements the CRUD actions for SliderImage model. */ @@ -73,7 +73,12 @@ class SliderImageController extends Controller if ($model->load(Yii::$app->request->post())) { $model->slider_id = $slider_id; - $model->save(); + if ( ($image = UploadedFile::getInstance($model, 'image')) ) { + $model->image = $image->name; + } + if ($model->save() && $image) { + $image->saveAs(Yii::getAlias('@storage/slider/' . $image->name)); + } return $this->redirect(['view', 'slider_id'=>$slider_id, 'id' => $model->slider_image_id]); } else { @@ -98,7 +103,21 @@ class SliderImageController extends Controller { $model = $this->findModel($slider_id, $id); - if ($model->load(Yii::$app->request->post()) && $model->save()) { + if ($model->load(Yii::$app->request->post())) { + + + + if ( ($image = UploadedFile::getInstance($model, 'image')) ) { + $model->image = $image->name; + } + + if(!$model->image){ + $model->image = $model->getOldAttribute('image'); + } + + if ($model->save() && $image) { + $image->saveAs(Yii::getAlias('@storage/slider/' . $image->name)); + } return $this->redirect(['view', 'slider_id'=>$slider_id, 'id' => $model->slider_image_id]); } else { diff --git a/backend/views/slider-image/_form.php b/backend/views/slider-image/_form.php index 92148bd..f5be3e7 100755 --- a/backend/views/slider-image/_form.php +++ b/backend/views/slider-image/_form.php @@ -14,20 +14,24 @@ use yii\widgets\ActiveForm;
- - $model, - 'field'=>'image', - 'size' => [ - [ - 'width'=>$slider->width, - 'height'=>$slider->height, - ], + ['enctype' => 'multipart/form-data']]); ?> + + field($model, 'image')->widget(\kartik\file\FileInput::classname(), [ + 'model' => $model, + 'attribute' => 'image', + 'options' => [ + 'accept' => 'image/*', + 'multiple' => true ], - 'gallery' =>$model->image, - 'name' => 'Загрузить миниатюру статьи' - ]); - ?> + 'pluginOptions' => [ + 'allowedFileExtensions' => ['jpg','gif','png'], + 'initialPreview' => $model->imageUrl ? \common\components\artboximage\ArtboxImageHelper::getImage($model->imageUrl, 'slider') : '', + 'overwriteInitial' => true, + 'showRemove' => true, + 'showUpload' => false, + ], + ]); ?> + field($model, 'alt')->textInput(['maxlength' => true]) ?> @@ -35,8 +39,6 @@ use yii\widgets\ActiveForm; field($model, 'url')->textInput(['maxlength' => true]) ?> - field($model, 'price')->textInput(['maxlength' => true]) ?> - field($model, 'status')->widget(Select2::className(),([ 'name' => 'status', 'hideSearch' => true, diff --git a/common/models/SliderImage.php b/common/models/SliderImage.php index a759c26..b24fa3c 100755 --- a/common/models/SliderImage.php +++ b/common/models/SliderImage.php @@ -15,7 +15,6 @@ use Yii; * @property string $url * @property integer $status * @property integer $sort - * @property double $price * * @property Slider $slider */ @@ -36,7 +35,6 @@ class SliderImage extends \yii\db\ActiveRecord { return [ [['slider_id', 'status', 'sort'], 'integer'], - [['price'], 'number'], [['image', 'alt', 'title', 'url'], 'string', 'max' => 255], [['slider_id'], 'exist', 'skipOnError' => true, 'targetClass' => Slider::className(), 'targetAttribute' => ['slider_id' => 'slider_id']], ]; @@ -56,7 +54,6 @@ class SliderImage extends \yii\db\ActiveRecord 'url' => Yii::t('app', 'url'), 'status' => Yii::t('app', 'status'), 'sort' => Yii::t('app', 'sort'), - 'price' => Yii::t('app', 'price'), ]; } @@ -67,4 +64,13 @@ class SliderImage extends \yii\db\ActiveRecord { return $this->hasOne(Slider::className(), ['slider_id' => 'slider_id']); } + + public function getImageFile() { + return empty($this->image) ? null : '/storage/slider/'. $this->image; + } + + public function getImageUrl() { + return empty($this->image) ? null : '/storage/slider/'. $this->image; + } + } -- libgit2 0.21.4