Commit d7c2d84eaec1c9b69d4f2c8e80d125881d3a9d8c

Authored by Administrator
1 parent c7e2d9b2

30.06.16 slider

backend/controllers/SliderImageController.php
@@ -9,7 +9,7 @@ use common\models\SliderImageSearch; @@ -9,7 +9,7 @@ use common\models\SliderImageSearch;
9 use yii\web\Controller; 9 use yii\web\Controller;
10 use yii\web\NotFoundHttpException; 10 use yii\web\NotFoundHttpException;
11 use yii\filters\VerbFilter; 11 use yii\filters\VerbFilter;
12 - 12 +use yii\web\UploadedFile;
13 /** 13 /**
14 * SliderImageController implements the CRUD actions for SliderImage model. 14 * SliderImageController implements the CRUD actions for SliderImage model.
15 */ 15 */
@@ -73,7 +73,12 @@ class SliderImageController extends Controller @@ -73,7 +73,12 @@ class SliderImageController extends Controller
73 73
74 if ($model->load(Yii::$app->request->post())) { 74 if ($model->load(Yii::$app->request->post())) {
75 $model->slider_id = $slider_id; 75 $model->slider_id = $slider_id;
76 - $model->save(); 76 + if ( ($image = UploadedFile::getInstance($model, 'image')) ) {
  77 + $model->image = $image->name;
  78 + }
  79 + if ($model->save() && $image) {
  80 + $image->saveAs(Yii::getAlias('@storage/slider/' . $image->name));
  81 + }
77 return $this->redirect(['view', 'slider_id'=>$slider_id, 'id' => $model->slider_image_id]); 82 return $this->redirect(['view', 'slider_id'=>$slider_id, 'id' => $model->slider_image_id]);
78 } else { 83 } else {
79 84
@@ -98,7 +103,21 @@ class SliderImageController extends Controller @@ -98,7 +103,21 @@ class SliderImageController extends Controller
98 { 103 {
99 $model = $this->findModel($slider_id, $id); 104 $model = $this->findModel($slider_id, $id);
100 105
101 - if ($model->load(Yii::$app->request->post()) && $model->save()) { 106 + if ($model->load(Yii::$app->request->post())) {
  107 +
  108 +
  109 +
  110 + if ( ($image = UploadedFile::getInstance($model, 'image')) ) {
  111 + $model->image = $image->name;
  112 + }
  113 +
  114 + if(!$model->image){
  115 + $model->image = $model->getOldAttribute('image');
  116 + }
  117 +
  118 + if ($model->save() && $image) {
  119 + $image->saveAs(Yii::getAlias('@storage/slider/' . $image->name));
  120 + }
102 return $this->redirect(['view', 'slider_id'=>$slider_id, 'id' => $model->slider_image_id]); 121 return $this->redirect(['view', 'slider_id'=>$slider_id, 'id' => $model->slider_image_id]);
103 } else { 122 } else {
104 123
backend/views/slider-image/_form.php
@@ -14,20 +14,24 @@ use yii\widgets\ActiveForm; @@ -14,20 +14,24 @@ use yii\widgets\ActiveForm;
14 14
15 <div class="slider-image-form"> 15 <div class="slider-image-form">
16 16
17 - <?php $form = ActiveForm::begin(); ?>  
18 - <?= ImageUploader::widget([  
19 - 'model'=> $model,  
20 - 'field'=>'image',  
21 - 'size' => [  
22 - [  
23 - 'width'=>$slider->width,  
24 - 'height'=>$slider->height,  
25 - ], 17 + <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?>
  18 +
  19 + <?= $form->field($model, 'image')->widget(\kartik\file\FileInput::classname(), [
  20 + 'model' => $model,
  21 + 'attribute' => 'image',
  22 + 'options' => [
  23 + 'accept' => 'image/*',
  24 + 'multiple' => true
26 ], 25 ],
27 - 'gallery' =>$model->image,  
28 - 'name' => 'Загрузить миниатюру статьи'  
29 - ]);  
30 - ?> 26 + 'pluginOptions' => [
  27 + 'allowedFileExtensions' => ['jpg','gif','png'],
  28 + 'initialPreview' => $model->imageUrl ? \common\components\artboximage\ArtboxImageHelper::getImage($model->imageUrl, 'slider') : '',
  29 + 'overwriteInitial' => true,
  30 + 'showRemove' => true,
  31 + 'showUpload' => false,
  32 + ],
  33 + ]); ?>
  34 +
31 35
32 <?= $form->field($model, 'alt')->textInput(['maxlength' => true]) ?> 36 <?= $form->field($model, 'alt')->textInput(['maxlength' => true]) ?>
33 37
@@ -35,8 +39,6 @@ use yii\widgets\ActiveForm; @@ -35,8 +39,6 @@ use yii\widgets\ActiveForm;
35 39
36 <?= $form->field($model, 'url')->textInput(['maxlength' => true]) ?> 40 <?= $form->field($model, 'url')->textInput(['maxlength' => true]) ?>
37 41
38 - <?= $form->field($model, 'price')->textInput(['maxlength' => true]) ?>  
39 -  
40 <?= $form->field($model, 'status')->widget(Select2::className(),([ 42 <?= $form->field($model, 'status')->widget(Select2::className(),([
41 'name' => 'status', 43 'name' => 'status',
42 'hideSearch' => true, 44 'hideSearch' => true,
common/models/SliderImage.php
@@ -15,7 +15,6 @@ use Yii; @@ -15,7 +15,6 @@ use Yii;
15 * @property string $url 15 * @property string $url
16 * @property integer $status 16 * @property integer $status
17 * @property integer $sort 17 * @property integer $sort
18 - * @property double $price  
19 * 18 *
20 * @property Slider $slider 19 * @property Slider $slider
21 */ 20 */
@@ -36,7 +35,6 @@ class SliderImage extends \yii\db\ActiveRecord @@ -36,7 +35,6 @@ class SliderImage extends \yii\db\ActiveRecord
36 { 35 {
37 return [ 36 return [
38 [['slider_id', 'status', 'sort'], 'integer'], 37 [['slider_id', 'status', 'sort'], 'integer'],
39 - [['price'], 'number'],  
40 [['image', 'alt', 'title', 'url'], 'string', 'max' => 255], 38 [['image', 'alt', 'title', 'url'], 'string', 'max' => 255],
41 [['slider_id'], 'exist', 'skipOnError' => true, 'targetClass' => Slider::className(), 'targetAttribute' => ['slider_id' => 'slider_id']], 39 [['slider_id'], 'exist', 'skipOnError' => true, 'targetClass' => Slider::className(), 'targetAttribute' => ['slider_id' => 'slider_id']],
42 ]; 40 ];
@@ -56,7 +54,6 @@ class SliderImage extends \yii\db\ActiveRecord @@ -56,7 +54,6 @@ class SliderImage extends \yii\db\ActiveRecord
56 'url' => Yii::t('app', 'url'), 54 'url' => Yii::t('app', 'url'),
57 'status' => Yii::t('app', 'status'), 55 'status' => Yii::t('app', 'status'),
58 'sort' => Yii::t('app', 'sort'), 56 'sort' => Yii::t('app', 'sort'),
59 - 'price' => Yii::t('app', 'price'),  
60 ]; 57 ];
61 } 58 }
62 59
@@ -67,4 +64,13 @@ class SliderImage extends \yii\db\ActiveRecord @@ -67,4 +64,13 @@ class SliderImage extends \yii\db\ActiveRecord
67 { 64 {
68 return $this->hasOne(Slider::className(), ['slider_id' => 'slider_id']); 65 return $this->hasOne(Slider::className(), ['slider_id' => 'slider_id']);
69 } 66 }
  67 +
  68 + public function getImageFile() {
  69 + return empty($this->image) ? null : '/storage/slider/'. $this->image;
  70 + }
  71 +
  72 + public function getImageUrl() {
  73 + return empty($this->image) ? null : '/storage/slider/'. $this->image;
  74 + }
  75 +
70 } 76 }