fix reviews

parent b9a383b4
...@@ -110,19 +110,8 @@ class ReviewAdminController extends AdminController ...@@ -110,19 +110,8 @@ class ReviewAdminController extends AdminController
'Добавить отзыв' 'Добавить отзыв'
]; ];
$model->load(Yii::$app->request->post()); if ($model->load(Yii::$app->request->post()) && $model->save())
$model->image = UploadedFile::getInstance($model, 'image');
if (Yii::$app->request->isPost && $model->validate())
{ {
if($model->image)
{
$model->upload();
$model->image = null;
}
$model->save();
return $this->redirect(['manage']); return $this->redirect(['manage']);
} }
else else
...@@ -152,25 +141,8 @@ class ReviewAdminController extends AdminController ...@@ -152,25 +141,8 @@ class ReviewAdminController extends AdminController
'Редактировать отзыв' 'Редактировать отзыв'
]; ];
$model->load(Yii::$app->request->post()); if ($model->load(Yii::$app->request->post()) && $model->save())
$model->image = UploadedFile::getInstance($model, 'image');
if (Yii::$app->request->isPost && $model->validate())
{ {
if($model->photo || $model->photo_delete)
{
$model->deletePhoto();
$model->photo = null;
}
if($model->image)
{
$model->upload();
$model->image = null;
}
$model->save();
return $this->redirect(['manage']); return $this->redirect(['manage']);
} }
else else
......
...@@ -14,9 +14,9 @@ return [ ...@@ -14,9 +14,9 @@ return [
'title' => [ 'title' => [
'type' => 'text', 'type' => 'text',
], ],
($model->photo?Html::img(\Yii::$app->params['frontUrl'] . Reviews::PHOTO_FOLDER . $model->photo):''), ($model->photo?Html::img(\Yii::$app->params['frontUrl'] . $model->photo):''),
'photo_delete' => ['type' => 'checkbox', 'class' => 'form-control',], 'unlinkFile' => ['type' => 'checkbox', 'class' => 'form-control',],
'image' => ['type' => 'file', 'class' => 'form-control',], 'file' => ['type' => 'file', 'class' => 'form-control',],
'video' => ['type' => 'text', 'class' => 'form-control',], 'video' => ['type' => 'text', 'class' => 'form-control',],
'date' => ['type' => 'date', 'class' => 'form-control',], 'date' => ['type' => 'date', 'class' => 'form-control',],
'text' => ['type' => 'textarea', 'class' => 'form-control'], 'text' => ['type' => 'textarea', 'class' => 'form-control'],
......
...@@ -34,11 +34,6 @@ use Yii; ...@@ -34,11 +34,6 @@ use Yii;
*/ */
class Reviews extends \common\components\ActiveRecordModel class Reviews extends \common\components\ActiveRecordModel
{ {
const PHOTO_FOLDER = '/uploads/reviews/';
public $image;
public $photo_delete = false;
private static $rate = [ private static $rate = [
'rate_usability' => [ 'rate_usability' => [
0 => 'Не определено', 0 => 'Не определено',
...@@ -83,12 +78,22 @@ class Reviews extends \common\components\ActiveRecordModel ...@@ -83,12 +78,22 @@ class Reviews extends \common\components\ActiveRecordModel
return 'Отзывы'; return 'Отзывы';
} }
// public function getUser() { /**
// return $this->hasOne(\common\modules\scoring\models\ScClient::className(), ['id' => 'user_id']); * @inheritdoc
// } */
public function behaviors()
public function getOperator() { {
return $this->hasOne(\common\modules\users\models\User::className(), ['id' => 'admin_id']); return [
'langs' => [
'class' => 'common\modules\blog\components\PostLangBehavior',
],
'file' => [
'class' => 'common\components\activeRecordBehaviors\FileUploadBehavior',
'path' => '@frontend/web',
'folder' => '/uploads/reviews/',
'field' => 'photo'
],
];
} }
/** /**
...@@ -99,23 +104,16 @@ class Reviews extends \common\components\ActiveRecordModel ...@@ -99,23 +104,16 @@ class Reviews extends \common\components\ActiveRecordModel
return [ return [
[['text', 'date', 'notification_send', 'show_in_module'], 'required'], [['text', 'date', 'notification_send', 'show_in_module'], 'required'],
[['admin_id', 'priority', 'notification_send', 'order', 'cat_id', 'show_in_module', 'rate_usability', 'rate_loyality', 'rate_profit'], 'integer'], [['admin_id', 'priority', 'notification_send', 'order', 'cat_id', 'show_in_module', 'rate_usability', 'rate_loyality', 'rate_profit'], 'integer'],
[['image'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg, jpeg, gif'], [['file'], 'file', 'skipOnEmpty' => true, 'extensions' => 'png, jpg, jpeg, gif'],
[['text', 'state', 'attendant_products'], 'string'], [['text', 'state', 'attendant_products'], 'string'],
[['admin_id'], 'adminIdValidate'], [['admin_id'], 'adminIdValidate'],
[['date', 'answer', 'good', 'bad', 'date_create', 'notification_date', 'rate_usability', 'rate_loyality', 'rate_profit', 'title', 'order', 'photo', 'state', 'video', 'photo_delete'], 'safe'], [['date', 'answer', 'good', 'bad', 'date_create', 'notification_date', 'rate_usability', 'rate_loyality', 'rate_profit', 'title', 'order', 'photo', 'state', 'video', 'unlinkFile'], 'safe'],
// [['lang'], 'string', 'max' => 2], // [['lang'], 'string', 'max' => 2],
[['title'], 'string', 'max' => 250], [['title'], 'string', 'max' => 250],
[['email', 'video'], 'string', 'max' => 255] [['email', 'video'], 'string', 'max' => 255]
]; ];
} }
public function adminIdValidate($attr, $value) {
if(empty($this->answer))
if(empty($this->$attr))
$this->addError($attr, 'Выберите опреатора');
}
/** /**
* @inheritdoc * @inheritdoc
*/ */
...@@ -133,7 +131,7 @@ class Reviews extends \common\components\ActiveRecordModel ...@@ -133,7 +131,7 @@ class Reviews extends \common\components\ActiveRecordModel
'bad' => Yii::t('reviews', 'Не понравилось'), 'bad' => Yii::t('reviews', 'Не понравилось'),
'photo' => Yii::t('reviews', 'Фото'), 'photo' => Yii::t('reviews', 'Фото'),
'video' => Yii::t('reviews', 'Ссылка на видео'), 'video' => Yii::t('reviews', 'Ссылка на видео'),
'image' => Yii::t('reviews', 'Фото'), 'file' => Yii::t('reviews', 'Фото'),
'state' => Yii::t('reviews', 'Состояние'), 'state' => Yii::t('reviews', 'Состояние'),
'date' => Yii::t('reviews', 'Дата'), 'date' => Yii::t('reviews', 'Дата'),
'date_create' => Yii::t('reviews', 'Создана'), 'date_create' => Yii::t('reviews', 'Создана'),
...@@ -148,10 +146,17 @@ class Reviews extends \common\components\ActiveRecordModel ...@@ -148,10 +146,17 @@ class Reviews extends \common\components\ActiveRecordModel
'rate_usability' => Yii::t('reviews', 'Удобство'), 'rate_usability' => Yii::t('reviews', 'Удобство'),
'rate_loyality' => Yii::t('reviews', 'Лояльность'), 'rate_loyality' => Yii::t('reviews', 'Лояльность'),
'rate_profit' => Yii::t('reviews', 'Выгода'), 'rate_profit' => Yii::t('reviews', 'Выгода'),
'photo_delete' => 'Удалить фото' 'unlinkFile' => 'Удалить фото'
]; ];
} }
public function adminIdValidate($attr, $value) {
if(empty($this->answer))
if(empty($this->$attr))
$this->addError($attr, 'Выберите опреатора');
}
public function hasComment() { public function hasComment() {
if(!empty($this->answer)) if(!empty($this->answer))
return true; return true;
...@@ -207,35 +212,8 @@ class Reviews extends \common\components\ActiveRecordModel ...@@ -207,35 +212,8 @@ class Reviews extends \common\components\ActiveRecordModel
return parent::beforeSave($insert); return parent::beforeSave($insert);
} }
private function getPath() public function getOperator()
{ {
return Yii::getAlias('@frontend/web') . self::PHOTO_FOLDER; return $this->hasOne(\common\modules\users\models\User::className(), ['id' => 'admin_id']);
}
public function upload()
{
if ($this->validate())
{
if(!file_exists($this->getPath()))
{
mkdir($this->getPath(), 0777, true);
}
$this->photo = date('dmYHis-') . uniqid() . '.' . $this->image->extension;
$this->image->saveAs($this->getPath() . $this->photo);
return true;
}
else
{
return false;
}
}
public function deletePhoto()
{
if(file_exists($this->getPath() . $this->photo))
{
unlink($this->getPath() . $this->photo);
}
} }
} }
...@@ -22,7 +22,7 @@ $reviews = Reviews::find() ...@@ -22,7 +22,7 @@ $reviews = Reviews::find()
<?php if($review->photo) : ?> <?php if($review->photo) : ?>
<div class="col-md-3 col-xs-4 col-sm-12"> <div class="col-md-3 col-xs-4 col-sm-12">
<div class="rev_img"> <div class="rev_img">
<img src="<?=Reviews::PHOTO_FOLDER . $review->photo?>"> <img src="<?=$review->photo?>">
</div> </div>
</div> </div>
<?php endif; ?> <?php endif; ?>
......
...@@ -21,7 +21,7 @@ $reviews = Reviews::find() ...@@ -21,7 +21,7 @@ $reviews = Reviews::find()
<?php if($review->photo) : ?> <?php if($review->photo) : ?>
<div class="col-md-3 col-xs-4 col-sm-12"> <div class="col-md-3 col-xs-4 col-sm-12">
<div class="rev_img"> <div class="rev_img">
<img src="<?=Reviews::PHOTO_FOLDER . $review->photo?>"> <img src="<?=$review->photo?>">
</div> </div>
</div> </div>
<?php endif; ?> <?php endif; ?>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment