0

Magento 1.7.0.2 CE を使用して、製品がサイト内で検索されたか、カテゴリ ビューから見つかったかに応じて、製品ビュー ページの XML レイアウトを変更する方法を見つけたいと思います。理由は、サイト用に作成した左側のバーのカスタム垂直ナビゲーションが、正しく表示するために Magento レジストリの「current_category」キーを使用しているためです。

カテゴリ セットがない場合は、7 つの主要な基本カテゴリが表示されます。カテゴリが設定されている場合、その基本カテゴリのサブカテゴリのみが表示されます (最大 34 のサブカテゴリ、アクティブなサブカテゴリで展開されます)。当然のことながら、垂直ナビゲーション バーが小さい場合は、サイドバーのスペースを均等にしたいと考えています。

製品がカテゴリを介して参照される場合、レジストリは「current_category」キーを保持するため、私の垂直ナビゲーションはそれ自体で左側のバーを十分に埋めます。検索すると、右のバーに比べてナビゲーションバーの高さが約3割近くに迫る。

私の理想的な解決策は、local.xml のレイアウトを更新することですが、そのために Magento で既に構築されているものがあるかどうかはわかりません。

私の最後の質問は 2 つの部分で構成されています。Magento の XML レイアウト内で、「catalog_product_view」ページがカテゴリまたは検索によって読み込まれたかどうかを判断する方法はありますか?

そうでない場合: 商品が検索されたか閲覧されたかに応じて、商品ビュー ページの右側のバーから左側にいくつかのブロックを移動するための最も効率的なコーディング方法は何ですか?

考えられる解決策の 1 つ (最後の部分): 新しいレイアウト タグのコーディング方法を知っている人はいますか? 「catalog_product_view」だけでなく、デフォルトの製品ビューに適用される「catalog_product_view_browsed」と「catalog_product_view_searched」を作成することを考えていました。

編集:私はそれを機能させており、私の答えは以下に掲載されています。:)

4

2 に答える 2

0

残念ながら、Magento のレイアウト XML で参照ページを追跡する方法はありませんが、誰かが検索から製品ページにアクセスしたかどうかを確認するには、$_SERVER['HTTP_REFERER'].

ユーザーが検索から製品ページにアクセスした場合、参照 URL は次のようになります/catalogsearch/result/?q=[SEARCH TERM]

于 2013-07-31T22:37:43.297 に答える