2014-01-13 62 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