<?php
/**
 * @link      http://www.u-bo.com
 * @copyright 南京友博网络科技有限公司 
 * @license   http://www.u-bo.com/license/
 */

namespace wap\controllers;

use Yii;
use yii\web\ForbiddenHttpException;

/**
 * wap控制器基类
 * 
 * 所有wap端控制器继承的基类,对wap端的操作进行统一管理，定义公共操作
 * 
 * @author legendjw http://blog.u-bo.com
 * @since 0.1
 */
class Controller extends \yii\web\Controller
{

    /**
     * @var string 当前操作的主模型名称 比如 '\common\models\User'
     */
    public $model;

    /**
     * 判断用户是否登录
     */
    public function beforeAction($action)
    {
        if (parent::beforeAction($action)) {
            //判断登录
            if (Yii::$app->user->isGuest) {
                return $this->redirect(['public/login']);
            }

            return true;
        } else {
            return false;
        }
    }

    /**
     * 前台公共提示页面
     * @param string $info 提示信息 也可以是数组['info' => '操作成功']
     * @param string $type 提示类型 success error
     * @param string $url 要跳转的地址 默认为返回上一页
     * @return type
     */
    public function flash($info = '', $type = '', $url = '', $time = 3000)
    {
        //第一个参数可以直接使用数组，方便直接设置其中一个参数
        if(is_array($info)){
            $type = (isset($info['type'])) ? $info['type'] : '';
            $url = (isset($info['url'])) ? $info['url'] : '';
            $time = (array_key_exists('time', $info)) ? $info['time'] : 3000;
            $info = (isset($info['info'])) ? $info['info'] : '';
        }
        if($info == '' || $type == ''){
            $session = Yii::$app->getSession();
            if($session->hasFlash('success')){
                $info = $session->getFlash('success', '操作成功', true);
                $type = 'success';
            } else if($session->hasFlash('error')){
                $info = $session->getFlash('error', '操作失败', true);
                $type = 'error';
            } else {
                $info = '没有任何提示信息!';
                $type = 'error';
            }
        }

        if($url === ''){
            $url = 'javascript:history.back(-1)';
        } elseif($url !== null && $url !== '#'){
            $url = \yii\helpers\Url::to($url);
        }

        return $this->render('/site/flash', ['info' => $info, 'type' => $type, 'url' => $url, 'time' => $time]);
    }

}
