【tp5】ThinkCMF5框架,配置使其支持不同终端PC/WAP/Wechat能加载不同配置和视图

1、版本 5.0.18

2、在data/conf/ 新增config.php文件,内容如下:

<?php
//ThinkCMF5区别不同客户端加载不同配置文件和模块、视图
$default_module = 'admin';
$default_controller = 'Index';
$default_action = 'index';

if(true===isWeixin()){
    $default_module = 'user';
    $default_controller = 'Login';
    $default_action = 'index';
}elseif(true===isMobile()){
    $default_module = 'portal';
}

return [
    // 默认模块名
    'default_module'          => $default_module,
    // 默认控制器名
    'default_controller'      => $default_controller,
    // 默认操作名
    'default_action'          => $default_action,
];

//判断是否 微信浏览器
function isWeixin() {
    if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false) {
        return true;
    } else {
        return false;
    }
}
//判断是PC还是wap
function isMobile(){
    if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) return true;
    if(isset ($_SERVER['HTTP_CLIENT']) &&'PhoneClient'==$_SERVER['HTTP_CLIENT']) return true;
    if (isset ($_SERVER['HTTP_VIA'])) return stristr($_SERVER['HTTP_VIA'], 'wap') ? true : false;
    if (isset ($_SERVER['HTTP_USER_AGENT'])) {
        $clientkeywords = array(
            'nokia','sony','ericsson','mot','samsung','htc','sgh','lg','sharp','sie-','philips','panasonic','alcatel','lenovo','iphone','ipod','blackberry','meizu','android','netfront','symbian','ucweb','windowsce','palm','operamini','operamobi','openwave','nexusone','cldc','midp','wap','mobile'
        );
        if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) {
            return true;
        }
    }
    if (isset ($_SERVER['HTTP_ACCEPT'])) {
        if ((strpos($_SERVER['HTTP_ACCEPT'],
            'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'],
                'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'],
                    'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'],
                        'text/html')))) {
                        return true;
        }
    }
    return false;
}    

3、效果:

如果是微信,默认输入ip或者域名,直接绑定到 user/Loing/index 页面

如果是wap,默认输入ip或者域名,直接绑定到 portal/Index/index 页面

其他情况,PC/IPAD, 均绑定至 默认的 config页面, admin/Index/index页面

 

posted @ 2018-09-06 16:16  PHP急先锋  阅读(635)  评论(0编辑  收藏  举报