В product/list.phtml Я пытаюсь получить номер каждого продукта, как он будет отображаться в представлении пользователю. Допустим, у категории 24 продукта. Если пользователь перейдет к второй странице, первым продуктом будет 17 (а пейджер на панели инструментов отобразит 17-24 из 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, что и ожидалось, и это номер, на котором работает пейджер панели инструментов.
Что нужно сделать, чтобы получить правильный и точный цифровой листинг?
Это не сработало, но я ценю усилие! – callmetwan