【发布时间】:2014-10-21 13:09:53
【问题描述】:
在 product/list.phtml 中,我试图获取每个产品的数量,因为它会出现在用户的视图中。假设一个类别有 24 个产品。如果用户继续到第二页,第一个产品将是 17(并且工具栏分页器将显示 17-24 of 24 Products)。我正在尝试获取第一个数字。
我的问题是我无法获得准确的数字列表。工具栏寻呼机计算并显示当前正在查看的正确产品编号,我想我会尝试调用该块并从中获取信息。我想这就像调用一样简单:
$pager = Mage::getBlockSingleton('page/html_pager')->getFirstNum();
返回错误Fatal error: Call to a member function getPageSize() on a non-object in /app/code/core/Mage/Page/Block/Html/Pager.php on line 192。
即指向这个函数,return 语句是第 192 行:
public function getFirstNum()
{
$collection = $this->getCollection();
return $collection->getPageSize()*($collection->getCurPage()-1)+1;
}
进一步挖掘,寻呼机块似乎需要有一个集合集才能执行任何操作。所以我设置了集合并希望它有效:
$_productCollection=$this->getLoadedProductCollection();
$pager = Mage::getBlockSingleton('page/html_pager')->setCollection($_productCollection)->getFirstNum();
现在我得到了输出,但 pageSize 设置为 10,这导致数字的前进与工具栏寻呼机不同(并且不正确)。在管理面板中,我将 Grid and List default Products per Page 设置为 16,这是我所期望的,这也是工具栏寻呼机正在运行的数字。
我需要做什么才能获得正确和准确的数字列表?
【问题讨论】:
标签: php magento templates collections