Magento移动版本存储切换逻辑

Magento移动版本存储切换逻辑,magento,mobile,Magento,Mobile,我已经走上了让我的magento商店手机友好的道路。起初,我开始使用简单的magento配置主题例外向使用移动浏览器的访问者显示移动主题,直到我意识到我实际上需要为主题创建一个新的商店视图。我需要在移动站点上禁用几个扩展 因此,我有我的移动站点m.website.no和我的主站点www.website.no-我在index.php中有运行magento的代码,其中包含移动站点或主站点的商店代码,具体取决于请求。如果检测到移动用户代理,它还会重定向到移动站点 现在,创建一个移动站点并基于用户代理将

我已经走上了让我的magento商店手机友好的道路。起初,我开始使用简单的magento配置主题例外向使用移动浏览器的访问者显示移动主题,直到我意识到我实际上需要为主题创建一个新的商店视图。我需要在移动站点上禁用几个扩展

因此,我有我的移动站点m.website.no和我的主站点www.website.no-我在index.php中有运行magento的代码,其中包含移动站点或主站点的商店代码,具体取决于请求。如果检测到移动用户代理,它还会重定向到移动站点

现在,创建一个移动站点并基于用户代理将访问者重定向到该站点是非常好的,但是如果他们想要查看桌面站点呢?一个链接到主站点,对吗?它会转到www.website.no-但是访问者会再次被循环回移动站点。。。因此,逻辑的下一步是设置如下变量: www.website.no/?desktop=1。如果我想让它保持不变,那么我必须把它放在会话变量或cookie之类的东西中


我的问题-在index.php中,甚至没有加载magento!那么,在加载会话变量之前,如何通过magento(例如,
Mage::getSingleton('core/session')->setIsDesktop(true);
)设置或获取会话变量呢?我是不是走错了路?如果用户特别要求主站点,我是否必须扩展magento或其他东西,以便它切换存储?巨大的头痛。

我通过创建一个新的扩展并在初始化后强制magento切换存储来解决这个问题

将index.php复制到(例如)index_mobile.php

将以下脚本添加到第一行index_mobile.php文件中,以强制将用户代理更改为桌面

$_SERVER['HTTP_USER_AGENT'] = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36';
现在创建指向yoursite.com/index_mobile.php的超链接

<a href="yoursite.com/index_mobile.php">view desktop site</a>


祝你好运D

您能给我介绍一下您的解决方案吗?非常感谢。令人惊叹的。另外,这里是更新所有链接以添加index_mobile.php的代码:
jQuery(function(){if(document.URL.split('/index_mobile.php').length>1{jQuery('a').each(function(){if(jQuery)(this.attr('href')).indexOf('/')=0){jQuery this.attr('href',/index_mobile.php/+jQuery this.attr('href');}else{jQuery.attr('href',jQuery(this).attr('href').replace(//\/\/YOUR\u SITE\u DOMAIN\//g,///YOUR\u SITE\u DOMAIN/index\u mobile.php/');}}})我刚刚在我的博客上发布了另一种方法,