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 9 use yii\web\Controller;
10 10 use yii\web\NotFoundHttpException;
11 11 use yii\filters\VerbFilter;
12   -
  12 +use yii\web\UploadedFile;
13 13 /**
14 14 * SliderImageController implements the CRUD actions for SliderImage model.
15 15 */
... ... @@ -73,7 +73,12 @@ class SliderImageController extends Controller
73 73  
74 74 if ($model->load(Yii::$app->request->post())) {
75 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 82 return $this->redirect(['view', 'slider_id'=>$slider_id, 'id' => $model->slider_image_id]);
78 83 } else {
79 84  
... ... @@ -98,7 +103,21 @@ class SliderImageController extends Controller
98 103 {
99 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 121 return $this->redirect(['view', 'slider_id'=>$slider_id, 'id' => $model->slider_image_id]);
103 122 } else {
104 123  
... ...
backend/views/slider-image/_form.php
... ... @@ -14,20 +14,24 @@ use yii\widgets\ActiveForm;
14 14  
15 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 36 <?= $form->field($model, 'alt')->textInput(['maxlength' => true]) ?>
33 37  
... ... @@ -35,8 +39,6 @@ use yii\widgets\ActiveForm;
35 39  
36 40 <?= $form->field($model, 'url')->textInput(['maxlength' => true]) ?>
37 41  
38   - <?= $form->field($model, 'price')->textInput(['maxlength' => true]) ?>
39   -
40 42 <?= $form->field($model, 'status')->widget(Select2::className(),([
41 43 'name' => 'status',
42 44 'hideSearch' => true,
... ...
common/models/SliderImage.php
... ... @@ -15,7 +15,6 @@ use Yii;
15 15 * @property string $url
16 16 * @property integer $status
17 17 * @property integer $sort
18   - * @property double $price
19 18 *
20 19 * @property Slider $slider
21 20 */
... ... @@ -36,7 +35,6 @@ class SliderImage extends \yii\db\ActiveRecord
36 35 {
37 36 return [
38 37 [['slider_id', 'status', 'sort'], 'integer'],
39   - [['price'], 'number'],
40 38 [['image', 'alt', 'title', 'url'], 'string', 'max' => 255],
41 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 54 'url' => Yii::t('app', 'url'),
57 55 'status' => Yii::t('app', 'status'),
58 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 64 {
68 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 }
... ...