Magento移动版商店切换逻辑

时间:2012-03-19 11:36:11

标签: magento mobile

我走上了让我的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或其他东西以便切换存储?巨大的头痛。

2 个答案:

答案 0 :(得分:1)

将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

答案 1 :(得分:-2)

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