0

クライアントがサイドバーの表示方法について特定の要件を持っている Magento Web サイトを実行しています。

カタログ カテゴリのデフォルトとカタログ検索結果は、さまざまな方法でサイドバー メニュー項目を構成します。それぞれ Leafcutter_Catalog_Block_Navigation_Category_Navigation と Leafcutter_Catalog_Block_Navigation_Search_Navigation というブロック クラスを持つ独自のモジュールを作成しました。これらのクラスは両方とも、デフォルトの Mage_Catalog_Block_Navigation を拡張します。モジュールの config.xml ファイルは次のとおりです。

    <?xml version="1.0"?>
<config>
    <modules>
        <Leafcutter_Catalog>
            <version>1.0</version>
        </Leafcutter_Catalog>
    </modules>
    <global>
        <blocks>
            <catalog>
                <rewrite>
                    <product_list_toolbar>Leafcutter_Catalog_Block_Product_List_Toolbar</product_list_toolbar>
                    <!--<navigation>Leafcutter_Catalog_Block_Navigation</navigation>-->
                    <product_list>Leafcutter_Catalog_Block_Product_List</product_list>
                </rewrite>
                <class>Leafcutter_Catalog_Block</class>
            </catalog>
        </blocks>
        <helpers>
            <catalog>
                <rewrite>
                    <category>Leafcutter_Catalog_Helper_Category</category>
                </rewrite>
            </catalog>
        </helpers>
    </global>

ご覧のとおり、新しく作成したカスタム ブロック クラスを使用できなくなると想定しているため、<class>Leafcutter_Catalog_Block</class>使用したくないので宣言を使用しました。<rewrite>Mage_Catalog_Block_Nagvigation</rewrite>

また、レイアウト ディレクトリの local.xml ファイルに追加のコードをいくつか記述して、新しく作成したブロックの 1 つをそれぞれの適切なページに配置しました。

<catalog_category_default>
            <reference name="product_list">
                <action method="setColumnCount"><columns>3</columns></action>
            </reference>
            <reference name="left">
                <block type="catalog/navigation_category_navigation" as="catalog.polar.vertnav" before="-" template="catalog/navigation/vertnav.phtml" />
            </reference>
        </catalog_category_default>
        <catalog_category_layered>
            <reference name="product_list">
                <action method="setColumnCount"><columns>3</columns></action>
            </reference>
            <reference name="left">
                <block type="catalog/navigation_category_navigation" as="catalog.polar.vertnav" before="-" template="catalog/navigation/vertnav.phtml" />
            </reference>
        </catalog_category_layered>

これらの変更をコードに適用した後、私のサイドバーは期待どおりに完全に機能します。ただし、現在の問題は、カタログ カテゴリ ページで catalog/product_list がまったくレンダリングされず、完全に消えてしまうことです。以下のスクリーンショットをご覧ください。

ここに画像の説明を入力

私の推測では、<class>Leafcutter_Catalog_Block</class>そのモジュールに追い抜かれました。

私の質問は、スクリーンショットでわかるように、このサイドバー効果をどのように取得するかです。製品のリストがあり、カタログ カテゴリ ページのサイドバーを 1 つの方法でレンダリングするというクライアントからの要件を満たす必要があります。 Leafcutter_Catalog_Block_Navigation_Category_Navigation ブロックと検索結果は Leafcutter_Catalog_Block_Navigation_Search_Navigation ブロックですか?

前もって感謝します。

4

1 に答える 1

1

これをモジュールに追加します。

<class>Leafcutter_Catalog_Block</class>

で始まるすべてのブロックが書き換えられcatalog/..ます。それを削除して、書き換えが必要なブロックのみを書き換える必要があります。

<blocks>
    <catalog>
        <rewrite>
            <block_alias_here>New_Class_Name_Here</block_alias_here>
        </rewrite>
    </catalog>
</blocks>
于 2013-09-23T07:47:19.710 に答える