| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 | <?phpnamespace app\controllers;use Yii;use yii\filters\AccessControl;use yii\web\Controller;use yii\web\Response;use yii\filters\VerbFilter;use app\models\LoginForm;use app\models\ContactForm;class SiteController extends Controller{    /**     * {@inheritdoc}     */    public function behaviors()    {        return [            'access' => [                'class' => AccessControl::className(),                'only' => ['logout'],                'rules' => [                    [                        'actions' => ['logout'],                        'allow' => true,                        'roles' => ['@'],                    ],                ],            ],            'verbs' => [                'class' => VerbFilter::className(),                'actions' => [                    'logout' => ['post'],                ],            ],        ];    }    /**     * {@inheritdoc}     */    public function actions()    {        return [            'error' => [                'class' => 'yii\web\ErrorAction',            ],            'captcha' => [                'class' => 'yii\captcha\CaptchaAction',                'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,            ],        ];    }    /**     * Displays homepage.     *     * @return string     */    public function actionIndex()    {        return $this->render('index');    }    /**     * Login action.     *     * @return Response|string     */    public function actionLogin()    {        if (!Yii::$app->user->isGuest) {            return $this->goHome();        }        $model = new LoginForm();        if ($model->load(Yii::$app->request->post()) && $model->login()) {            return $this->goBack();        }        $model->password = '';        return $this->render('login', [            'model' => $model,        ]);    }    /**     * Logout action.     *     * @return Response     */    public function actionLogout()    {        Yii::$app->user->logout();        return $this->goHome();    }    /**     * Displays contact page.     *     * @return Response|string     */    public function actionContact()    {        $model = new ContactForm();        if ($model->load(Yii::$app->request->post()) && $model->contact(Yii::$app->params['adminEmail'])) {            Yii::$app->session->setFlash('contactFormSubmitted');            return $this->refresh();        }        return $this->render('contact', [            'model' => $model,        ]);    }    /**     * Displays about page.     *     * @return string     */    public function actionAbout()    {        return $this->render('about');    }}
 |