マルチストア Magento セットアップ (Magento 1.7.0.2) があり、異なるストア用に 2 つの異なるテンプレートが必要です。2 つ目のテンプレートをインストールすると、最初のテンプレートのメニューが表示されなくなります。これは、テンプレートによって実装されたカスタムメニュー モジュールが原因だと思います。
モジュールを編集して、2 つの異なる方法で Magento ナビゲーションを上書きする方法 (2 つの異なるテンプレートの場合)?
乾杯!
マルチストア Magento セットアップ (Magento 1.7.0.2) があり、異なるストア用に 2 つの異なるテンプレートが必要です。2 つ目のテンプレートをインストールすると、最初のテンプレートのメニューが表示されなくなります。これは、テンプレートによって実装されたカスタムメニュー モジュールが原因だと思います。
モジュールを編集して、2 つの異なる方法で Magento ナビゲーションを上書きする方法 (2 つの異なるテンプレートの場合)?
乾杯!
あなたの説明によると、問題はデフォルトのブロック、コントローラー、またはモデルがメニューモジュールによってオーバーライドされていることが原因だと思います。現在のバージョンの Magento でこれを処理するのは簡単ではありません。あなたが遭遇した状況に関して、解決策を提案できます。
どのクラスがオーバーライドされているかを確認する
メニュー モジュールの下の config.xml を確認できます。パスは次のようになります。
/MAGENT_ROOT/app/code/{local,community}/Custom/Menu/etc/config.xml
タグをチェック
/config/global/models/xxxx/rewrite # for model rewrite
/config/global/rewrite/xxxx/{from, to} # for controller rewrite
/config/global/blocks/xxxx/rewrite # for block rewrite
次に、モジュールによってオーバーライドされたものを表示できます。
ストア ビュー ベースのオプションを作成する
/MAGENT_ROOT/app/code/{local,community}/Custom/Menu/etc/system.xml
Enable the extensionというオプションを追加します。(以下のようにいくつかのスニペット)
# the xml should insert into /config/sections/xxxx/groups/general/fields/
<enabled>
<label>Enable the extension</label>
<frontend_type>select</frontend_type>
<source_model>adminhtml/system_config_source_yesno</source_model>
<sort_order>10</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
</enabled>
クラスを確認する
適切にプログラムされている場合は、デフォルトのクラスをオーバーライドする必要があります。したがって、次のロジックを使用できます。
if (Mage::getStoreConfig('xxxx/general/enabled') === '1') {
# the original module logic
} else {
parent::some_method($_args);
}
これは、私の仮定の下で提案できるソリューションです。お役に立てば幸いです。
2 番目のストアを作成するときに、同じカテゴリ ルートまたはそのストアのカスタム カテゴリ リストを選択するだけで、2 番目、3 番目のストアでメニューが機能します。
System > Manage Stores:
Store Name
現在メニューが表示されていないものを選択し、デフォルトを選択しますRoot Category *
これがお役に立てば幸いです。