0

プロジェクトでMeanbee Infinite Scrollモジュールを使用しています。通常のカテゴリの商品リストで機能しています。しかし今、カスタムメイドのモジュールでアクティブ化しようとしています。

しかし、私は次の行68に困惑していScript.phpます:

 66       return (
 67           $block !== false &&
 68           $block->getChild('toolbar') !== false && // <-- This line
 69           $this->_getPagerBlock() !== false &&
 70           $this->_getPagerBlock()->getCollection()
 71       );

nameの属性を持つ xml 要素はありませんtoolbar。動作している通常のカテゴリxmlでも。では、何を"toolbar"指しているのでしょうか?

Avar_dump($block->getChild('toolbar'));はマイページでは false を返しますが、通常のカテゴリの商品一覧ページでは false を返しません。

私のXMLは次のとおりです(明確にするため):

        <block type="mynamespace/mymodule" name="mymodule.view" template="mynamespace/mymodule/view.phtml">
            <block type="catalog/product_list" name="product_list" template="toxicfox/giftfinder/list.phtml">
                <block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
                    <block type="page/html_pager" name="product_list_toolbar_pager"/>
                </block>
                <action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action>
                <action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</count></action>
                <action method="addColumnCountLayoutDepend"><layout>two_columns_left</layout><count>4</count></action>
                <action method="addColumnCountLayoutDepend"><layout>two_columns_right</layout><count>4</count></action>
                <action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action>
                <action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
            </block>
        </block>    

コア XML (Infinite Scroll モジュールで動作) は次のとおりです。

        <block type="catalog/category_view" name="category.products" template="catalog/category/view.phtml">
            <block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">
                <block type="catalog/product_list_toolbar" name="product_list_toolbar" template="catalog/product/list/toolbar.phtml">
                    <block type="page/html_pager" name="product_list_toolbar_pager"/>
                </block>
                <action method="addColumnCountLayoutDepend"><layout>empty</layout><count>6</count></action>
                <action method="addColumnCountLayoutDepend"><layout>one_column</layout><count>5</count></action>
                <action method="addColumnCountLayoutDepend"><layout>two_columns_left</layout><count>4</count></action>
                <action method="addColumnCountLayoutDepend"><layout>two_columns_right</layout><count>4</count></action>
                <action method="addColumnCountLayoutDepend"><layout>three_columns</layout><count>3</count></action>
                <action method="setToolbarBlockName"><name>product_list_toolbar</name></action>
            </block>
        </block>

ご覧のとおり、XML のどちらのブロックにも、属性nameが の要素はありません"toolbar"。唯一の違いは line1です。

どんな助けでも大歓迎です。

4

1 に答える 1

0

このMage_Catalog_Block_Product_List::_beforeToHtml()メソッドでは、ツールバー ブロックが、アクションによって示された名前でレイアウトから取得され、エイリアスsetToolbarBlockNameを持つ製品リストの子ブロックとして設定されます。toolbar

あなたの場合、問題は が で$blockまだ出力されtoHtml()ていないため、そのtoolbar子についてまだ知らない、またはこの種の何か (拡張機能が商用であるため言いにくい) である可能性があります。

于 2013-09-20T13:07:35.560 に答える