File: /home/safarimaris/home/safarimaris/frontend/controllers/RestController.php
<?php
namespace frontend\controllers;
use common\models\Order;
use common\models\Tour;
use yii\web\Response;
use Yii;
class RestController extends \yii\rest\Controller
{
public $layout = 'popup';
public function behaviors()
{
$behaviors = parent::behaviors();
$behaviors['contentNegotiator']['formats']['text/html'] = Response::FORMAT_JSON;
return $behaviors;
}
public function actionSubscribe()
{
$email = Yii::$app->request->post('email');
$validator = new \yii\validators\EmailValidator();
if ($res = $validator->validate($email, $err)) {
$res = Yii::$app->mailchimp->create($email);
return ['success' => true, 'message' => Yii::t('app', 'Thank you for subscribing!'), 'mailchimp' => $res];
} else {
return ['success' => false, 'message' => Yii::t('app', 'Wrong email')];
}
}
public function actionTourDetail()
{
if (Yii::$app->request->isAjax) {
$tourId = Yii::$app->request->get('tourId');
if ($tourId) {
$tour = Tour::findOne(['id' => $tourId]);
return ['success' => true, 'message' => $this->render('product', ['tour' => $tour])];
} else {
return ['success' => false, 'message' => Yii::t('app', 'Wrong params')];
}
}
}
public function actionOrder()
{
if (Yii::$app->request->isAjax) {
$model = new Order();
$model->attributes = Yii::$app->request->post();
if ($model->save()) {
$html = "<div class='thanks'>";
$html .= "<div class='h1'>".Yii::t('app', 'Thanks!')."</div>";
$html .= "<p>".Yii::t('app', 'Your order #{n}', ['n' => sprintf('<b>%s</b>', $model->id)])."</p>";
$html .= "<p>".Yii::t('app', 'We contact you soon')."</p>";
$html .= "</div>";
return ['success' => true, 'message' => $html];
} else {
return ['success' => false, 'message' => $model->errors];
}
}
}
}