最新最全的移动资源,海量教程攻略!

网站首页 > 技术支持 > discuz > discuz使用教程 > Discuz! X 多最近模板共存(手机触屏版+APP专用模板)的解决方案

Discuz! X 多最近模板共存(手机触屏版+APP专用模板)的解决方案

作者: 资源猫 时间: 2020-03-03 17:29:41 人气: 5

应用场景:保留原有手机触屏模板的同时,新增一套HTML5 APP模板并封装成APP供用户使用,两者互不影响(通过浏览器访问时使用原有手机触屏模板,通过APP访问时使用APP模板)。
解决方案:
1、通过 function_core.php 中的 checkmobile() 函数可知,原“手机标准版”(mobile=1)仅供Windows Phone使用,而目前使用Windows Phone的用户已经非常稀少,可不再针对其应用单独的模板(改为使用现有触屏版或wml版)。这样“手机标准版”(mobile=1)是空缺的,我们将原有手机触屏版改为标准版,新的APP模板作为触屏版。
打开 source/function/function_core.php ,
查找:
        static $touchbrowser_list =array('iphone', 'android', 'phone', 'mobile', 'wap', 'netfront', 'java', 'opera mobi', 'opera mini',
                                'ucweb', 'windows ce', 'symbian', 'series', 'webos', 'sony', 'blackberry', 'dopod', 'nokia', 'samsung',
                                'palmsource', 'xda', 'pieplus', 'meizu', 'midp', 'cldc', 'motorola', 'foma', 'docomo', 'up.browser',
                                'up.link', 'blazer', 'helio', 'hosin', 'huawei', 'novarra', 'coolpad', 'webos', 'techfaith', 'palmsource',
                                'alcatel', 'amoi', 'ktouch', 'nexian', 'ericsson', 'philips', 'sagem', 'wellcom', 'bunjalloo', 'maui', 'smartphone',
                                'iemobile', 'spice', 'bird', 'zte-', 'longcos', 'pantech', 'gionee', 'portalmmm', 'jig browser', 'hiptop',
                                'benq', 'haier', '^lct', '320x320', '240x320', '176x220');
        static $mobilebrowser_list =array('windows phone');
替换为:
        static $touchbrowser_list =array('html5plus', '你其它的APP UA');
        static $mobilebrowser_list =array('iphone', 'android', 'phone', 'mobile', 'wap', 'netfront', 'java', 'opera mobi', 'opera mini',
                                'ucweb', 'windows ce', 'symbian', 'series', 'webos', 'sony', 'blackberry', 'dopod', 'nokia', 'samsung',
                                'palmsource', 'xda', 'pieplus', 'meizu', 'midp', 'cldc', 'motorola', 'foma', 'docomo', 'up.browser',
                                'up.link', 'blazer', 'helio', 'hosin', 'huawei', 'novarra', 'coolpad', 'webos', 'techfaith', 'palmsource',
                                'alcatel', 'amoi', 'ktouch', 'nexian', 'ericsson', 'philips', 'sagem', 'wellcom', 'bunjalloo', 'maui', 'smartphone',
                                'iemobile', 'spice', 'bird', 'zte-', 'longcos', 'pantech', 'gionee', 'portalmmm', 'jig browser', 'hiptop',
                                'benq', 'haier', '^lct', '320x320', '240x320', '176x220', 'windows phone');
交换一下以下两端代码的顺序(否则APP访问时会因UA含有$mobilebrowser_list中的内容而无法进入APP版):
        if(($v = dstrpos($useragent, $mobilebrowser_list, true))){
                $_G['mobile'] = $v;
                return '1';
        }
        if(($v = dstrpos($useragent, $touchbrowser_list, true))){
                $_G['mobile'] = $v;
                return '2';
        }
即替换为:
        if(($v = dstrpos($useragent, $touchbrowser_list, true))){
                $_G['mobile'] = $v;
                return '2';
        }
        if(($v = dstrpos($useragent, $mobilebrowser_list, true))){
                $_G['mobile'] = $v;
                return '1';
        }
查找:
IN_MOBILE == 2
替换为(否则AJAX弹窗会存在问题):
IN_MOBILE == 2 || IN_MOBILE == 1
打开 source/class/model/ 下的 model_forum_post.php 和 model_forum_thread.php 文件,
查找:
IN_MOBILE == 2
替换为:
(IN_MOBILE == 2 || IN_MOBILE == 1)
2、将原手机触屏模板目录下的 touch 文件夹重命名为 mobile ,并在后台-界面-风格管理中将“手机标准版”设置为该模板,更新缓存。
3、上传安装新的APP模板,并设置为手机触屏版。

感谢访问资源猫吧,本站所有资源均来自互联网或用户分享,如您发现本站存在侵权或违规内容,请来邮件告知我们! 资源分享/侵权下架/商务合作联系邮箱:qiazou77ziyuan@126.com