HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux dev1 5.15.83-1-pve #1 SMP PVE 5.15.83-1 (2022-12-15T00:00Z) x86_64
User: safarimaris (1000)
PHP: 7.2.34-54+ubuntu22.04.1+deb.sury.org+1
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Upload Files
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];
            }
        }
    }

}