2014-08-27 75 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

相關問題