我在项目中使用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
属性为toolbar
的xml元素。即使在正常类别的xml中也是如此。那么"toolbar"
指的是什么?
var_dump($block->getChild('toolbar'));
在我的页面上返回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"
的属性。唯一的区别是第1
行。
感谢任何帮助。
答案 0 :(得分:0)
在Mage_Catalog_Block_Product_List::_beforeToHtml()
方法中,工具栏块从布局中检索,其名称由setToolbarBlockName
操作指示,然后设置为产品列表的子块,{{1别名。
在您的情况下,问题可能是toolbar
尚未输出$block
,因此它还不知道其toHtml()
孩子或某事这种(很难说因为扩展是商业性的)。