2014-08-27 76 views
0

在product/list.phtml中,我试图获取每个产品的数量,因为它会在视图中显示给用户。假设一个类别有24个产品。如果用户进入第二页,则第一个产品将是17(并且工具栏寻呼机将显示24个产品中的17-24个)。我正在尝试获取第一个数字。Magento获得集合中产品的数字顺序

我的问题是我无法获得准确的数值列表。工具栏寻呼机计算并显示当前正在查看的正确产品编号,我想我会尝试调用该块并从中获取信息。我认为它会和呼叫一样简单:

$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

指向这个函数,返回语句行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,这是造成数的进步是从工具栏寻呼机不同的(不正确) 。在管理面板中,我将网格和列表默认产品每页设置为16,这正是我期待的那样,并且这是工具栏传呼机正在操作的数字。

我需要做什么才能获得正确和准确的数值列表?

回答

0

这只是一个猜测,但不妨一试:

替换:

$pager = Mage::getBlockSingleton('page/html_pager')->setCollection($_productCollection)->getFirstNum(); 

有:

$pager = Mage::getBlockSingleton('page/html_pager')->setCollection($_productCollection)->setPageSize(16)->getFirstNum(); 

如果没有正确设置curPage你可以试试 - > setPage(16)后的setCurPage($ your_page_variable)。

+0

它没有工作,但我很欣赏努力! – callmetwan 2014-08-27 20:57:13

相关问题