3

行为

我每页只显示 3 个产品。所以在我的 catalog.xml 我有

<action method="setDefaultGridPerPage"><limit>3</limit></action>
<action method="addPagerLimit"><mode>grid</mode><limit>3</limit></action>

如果我去 /category.html 我只会看到 3 个产品。有效,太好了!

但我也希望能够一次显示所有产品,所以我在 catalog.xml 中添加了以下内容:

<action method="addPagerLimit"><mode>grid</mode><limit>999</limit></action>

现在,如果我导航到 /category.html?limit=999,我可以看到所有类别的产品,正如预期的那样。

问题:

当我回到 /category.html 时,没有限制参数,它显示所有产品,而不是我希望的 3 个。这是因为 Magento 缓存了限制首选项。

问题:

是否有阻止 magento 缓存列表选项的配置?

先感谢您。

4

1 回答 1

5

在工具栏块中有一个名为disableParamsMemorizing. 这应该禁用会话中参数的存储。
尝试将其添加到工具栏块中。

<action method="disableParamsMemorizing" />

或者您可以覆盖Mage_Catalog_Block_Product_List该类并使该getToolbarBlock方法如下所示:

public function getToolbarBlock()
{
    if ($blockName = $this->getToolbarBlockName()) {
        if ($block = $this->getLayout()->getBlock($blockName)) {
            $block->disableParamsMemorizing();
            return $block;
        }
    }
    $block = $this->getLayout()->createBlock($this->_defaultToolbarBlock, microtime());
    $block->disableParamsMemorizing();
    return $block;
} 
于 2013-07-18T08:14:34.683 回答