当limit = all在产品列表页面上时,Magento产品计数不正确

时间:2011-03-10 04:10:59

标签: list magento limit product layer

在将1.4版之前的Magento网站升级到版本1.4.1.2的过程中,我遇到了一个问题。在产品列表视图页面上,查看所有产品的选项仅显示10个(包含10个以上产品的类别)。以下是系统配置的目录部分中的一些相关设置:

List Mode: Grid Only
Products per Page on Grid Allowed Values: 8,16,32
Products per Page on Grid Default Value: 8
Allow All Products per Page: Yes

布局文件THEME / layout / catalog.xml中没有设置明确的限制。

在产品列表视图中,如果将“limit”参数设置为允许的整数值之一(8,16,32),则列表将按预期工作。但如果使用参数“limit = all”,则仅显示10个产品。

使用firephp扩展程序查看包含184个产品的类别的产品列表页面,我看到以下内容:

limit=16
THEME/template/catalog/product/list.phtml: $this->getLoadedProductCollection()->count() returns 16
THEME/template/catalog/product/list/toolbar.phtml: $this->getCollection()->getSize() returns 184

limit=all
THEME/template/catalog/product/list.phtml: $this->getLoadedProductCollection()->count() returns 10
THEME/template/catalog/product/list/toolbar.phtml: $this->getCollection()->getSize() returns 184

我查看了Mage_Catalog_Block_Product_List中的_getProductCollection()方法,但没有在任何地方看到查询限制。这个限制为10的任何想法来自或如何使“全部”限制正常工作?

更新

count()和getSize()在THEME / template / catalog / product / list.phtml中返回不同的值

limit=16
THEME/template/catalog/product/list.phtml: $this->getLoadedProductCollection()->count() returns 16
THEME/template/catalog/product/list.phtml: $this->getLoadedProductCollection()->getSize() returns 184
THEME/template/catalog/product/list/toolbar.phtml: $this->getCollection()->getSize() returns 184

limit=all
THEME/template/catalog/product/list.phtml: $this->getLoadedProductCollection()->count() returns 10
THEME/template/catalog/product/list.phtml: $this->getLoadedProductCollection()->getSize() returns 184
THEME/template/catalog/product/list/toolbar.phtml: $this->getCollection()->getSize() returns 184

这只发生在我的自定义主题中。如果我将主题切换到“base”包,则limit = all条件为count()和getSize()返回184个产品。我的自定义主题只对list.phtml进行了较小的标记/ CSS更改(PHP代码是相同的)。

1 个答案:

答案 0 :(得分:0)

传呼机是罪魁祸首。 1.4之前的Magento主题在THEME / template / catalog / category / view.phtml中使用了一些Pager逻辑。在1.4.x中,寻呼机已经过修改,需要在类别视图页面上设置明确的限制。

这里的带回家信息是,如果您发现自己实例化了“product_list_toolbar_pager”,请确保将限制设置为工具栏上使用的相同限制。