2012-03-19 5 views
3

私はMagentoストアをモバイルフレンドリーにする道を切りました。最初はテーマのためだけに新しいストアビューを作成する必要があることに気付くまで、シンプルなマゼンタの設定テーマの例外を使用して、モバイルテーマをモバイルブラウザで訪問者に表示し始めました。モバイルサイトを無効にするために必要な拡張機能がいくつかあります。Magentoモバイルバージョンストアスイッチングロジック

モバイルサイトm.website.noとメインサイトwww.website.noがあります。モバイルサイトまたはメインサイトのストアコードでmagentoを実行するindex.phpのコードがあります要求に応じてまた、モバイルユーザーエージェントが検出された場合は、モバイルサイトにリダイレクトされます。

モバイルサイトを作成してユーザーエージェントに基づいて訪問者をリダイレクトするのは大変うれしいですが、デスクトップサイトを表示する場合はどうすればいいですか? 1つは、メインのサイトへのリンクを作る、右か?それはwww.website.noに行きます - しかし訪問者は再びモバイルサイトにループバックされます...ロジックの次のステップは、このような変数を設定することです: www.website.no/?desktop = 1。それを固執させたいなら、セッション変数やクッキーなどに入れなければなりません。

私の問題 - index.phpでは、magentoはロードされていません!だから、ロードする前にmagento(例えばMage::getSingleton('core/session')->setIsDesktop(true);)を使ってセッション変数を設定したり取得したりするにはどうすればよいですか?私はこれについて完全に間違った方法をしていますか?ユーザーがメインサイトを特に求めている場合は、店舗を切り替えるためにマゼンタなどを拡張する必要がありますか?巨大な頭痛。

答えて

-2

私はこれを新しい拡張機能を作成し、イニシャライズ後にスイッチストアに強制して解決しました。

+0

あなたのソリューションの詳細を教えてください。ありがとうございました! – ahgood

1

(例えば)にあなたのindex.phpを複製

index_mobile.php今yoursiteするハイパーリンクを作成し、デスクトップ

$_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'; 

として変更ユーザエージェントを強制的にファイルindex_mobile.php最初の行に次のスクリプトを追加.com/index_mobile.php

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

幸運! :D

+1

素晴らしい。さらに、index_mobile.phpを追加するためのすべてのリンクを更新するコードを次に示します: 'jQuery(function(){ \t if(document.URL.split( '/ index_mobile.php')。length> 1){ \t \t jQuery ( 'A')。各(関数(){ \t \t \t IF(jQueryの(この).ATTR( 'のhref')のindexOf( '/')== 0){ \t \t \t \t jQueryの(この)他 \t \t \t} { \t \t \t \t jQueryの(この).ATTR(」; .ATTR( 'のhref'、/index_mobile.php/ + jQueryの(この).ATTR( 'のhref')) href '、jQuery(this).attr(' href ')。replace(/ \/\/YOUR_SITE_DOMAIN \ // g、' //YOUR_SITE_DOMAIN/index_mobile.php/ ')); \t \t \t} \t \t}); \t} }); ' – ahgood

+1

私のブログに別の方法を投稿するだけです。http://blog.ansyori.com/magento-create-button-switch-desktop-mobile/ – Ansyori