2014-01-13 37 views
1

我Opencart的主题不响应了,我创造了一个新的主题,手机友好位于catalog/view/theme/mobile/.... 所以现在我店里的主题文件夹中有以下2个主题Opencart的检测移动设备和重定向到移动主题

catalog/view/theme/desktop 
catalog/view/theme/mobile 

我知道如何检测移动设备,然后重定向到特定的域名地址。但是,这里不可能的,如果我这样做步骤必须创建一个新的存储像m.mystore.com

以下代码i的catalog/view/theme/desktop/template/common.header.tpl用于检测移动设备然后重定向到移动sotre

<script type="text/javascript">// <![CDATA[ 
    var mobile = (/iphone|ipad|ipod|android|blackberry|mini|windows\sce|palm/i.test(navigator.userAgent.toLowerCase())); 
    if (mobile) { 
        document.location = "http://m.mytore.com"; 
    } 
// ]]></script> 

上述方法不适合为我的需要

所以我的问题是如何检测移动设备除了创建新的商店,如何将模板文件夹重定向到catalog/view/theme/mobile

感谢您的任何帮助

+1

通过*响应主题*我明白了一个主题(**只是一个**),即不同的行为大屏幕(台式机),中型(平板电脑),小型屏幕(平板电脑和智能手机)和小型(智能手机)。通过拥有两个主题,一个用于桌面,另一个用于其他设备,我们无法谈论响应式主题。无论如何,检测移动设备并使用该移动主题重定向到* m.domain.com *有什么不妥?如果您需要一个响应式主题,例如坚持引导,但OpenCart也有很多响应式主题。 – shadyyx

+0

无论如何,在这里您正在检测移动设备太晚(在模板中)。你应该在PHP部分检测设备(假设在'index.php'末尾的某处),并覆盖'setting'表中的模板 - 如果你发现移动设备被检测到,只需将*桌面*模板*手机*一个... – shadyyx

回答

3

把移动检测的php代码放在config.php文件中。 然后,如果检测到移动设备,则对主题目录使用不同的定义。

if($ismobile){ 
define('DIR_TEMPLATE', 'C:\wamp\www\opencart/catalog/view/themeMobile/'); 
}else{ 
define('DIR_TEMPLATE', '/var/www/pharmalife365.com/catalog/view/themeMobile/'); 
} 

只要你的主题有两个文件夹的名称相同,这应该工作:d

+0

我会建议www.modernizr.com比使用这种方法 – Muhammed