File: /home/safarimaris/home/safarimaris/frontend/controllers/ReviewController.php
<?php
namespace frontend\controllers;
use common\components\ReviewStatus;
use common\components\UserRole;
use Yii;
use common\models\Review;
use yii\helpers\Url;
use yii\web\NotFoundHttpException;
class ReviewController extends Controller
{
public function actionAdd()
{
$isManager = in_array(Yii::$app->getUser()->identity->role,[UserRole::ADMIN, UserRole::MANAGER]);
$this->view->params['skipRemember'] = true;
$model = new Review();
$model->entityId = Yii::$app->request->get('e');
if ($model->load(Yii::$app->request->post())) {
if($isManager){
$model->status = ReviewStatus::STATUS_SENDED;
$model->hash = md5(time());
}
$model->save();
if($isManager){
Yii::$app->mailer
->compose('review', [
'model' => Yii::$app->request->post('Review'),
'boat' => $model->entity->name,
'hash' => $model->hash
])
->setTo(Yii::$app->request->post('Review')['email'])
->setSubject('Подтвердите отзыв о вашей поездке с Сафари Марис')
->send();
}
Yii::$app->session->setFlash('success', 'Спасибо! Ваш отзыв будет добавлен на сайт в ближайшее время');
return $this->redirect(Url::previous());
} else {
return $this->render($isManager?'add-manager':'add', [
'model' => $model,
]);
}
}
public function actionApprove()
{
$model = Review::findOne([
'hash' => Yii::$app->request->get('hash'),
'status' => ReviewStatus::STATUS_SENDED,
]);
if ($model != null && Yii::$app->request->get('hash') != '') {
$model->status = ReviewStatus::STATUS_APPROVED;
$model->hash = null;
$model->save(false);
}
Yii::$app->session->setFlash('success', 'Спасибо! Ваш отзыв будет добавлен на сайт в ближайшее время');
return $this->redirect(Url::home());
}
}