Поместите pager.html в result.phtml вместо toolbar.phtml

Я пытаюсь сделать нумерацию страниц result.phtml использование файла pager.phtml файл, создающий пользовательский блок:

echo $this->getLayout()->createBlock('page/html_pager', 'bottom.pager')->toHtml();

Но я получаю следующую ошибку:

Fatal error: Call to a member function getSize() on a non-object

В структуре по умолчанию Magento, функция $ This-> getPagerHtml () используется внутри файла toolbar.phtml:

/app/design/frontend/base/default/template/catalog/product/list/toolbar.phtml

Эта функция показывает навигацию по умолчанию страницы и toolbar.phtml файл вызывается на:

app/design/frontend/base/default/template/catalog/product/list.phtml

по функции $ This-> getToolbarHtml () и list.phtml файл вызывается на:

app/design/frontend/base/default/template/catalogsearch/result.phtml

по функции $ This-> getProductListHtml ().

Как я могу использовать функцию $ This-> getPagerHtml () (или, так или иначе, используйте нумерацию страниц) для разбивки моих результатов прямо внутри result.phtml без необходимости всех этих зависимостей?

1

Решение

Вы можете использовать этот код, чтобы добавить pager на ваш result.phtml, Вы должны предоставить коллекцию, используя setCollection функция.

_getProductCollection() это защищенная функция от класса Mage_CatalogSearch_Block_Resultи получает текущую коллекцию продуктов.

<?php
$layout = Mage::getSingleton('core/layout');
$pager = $layout->createBlock('page/html_pager');
$pager->setCollection($this->_getProductCollection());
echo $pager->toHtml();
?>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]