Добавление пейджера в пользовательский блок коллекции - PullRequest
0 голосов
/ 25 апреля 2011

Извините за избыточность этого вопроса, но ни один из примеров и решений для меня не сработал. У меня есть пользовательский модуль, который расширяет Mage_Catalog_Block_Product_List. Единственная функция в ней - _getProductCollection, которая устанавливает коллекцию товаров на основе того, по какому атрибуту вы хотите фильтровать. Это довольно просто и не требует обновления макета. Я поместил блок на страницу, добавив в раздел «Содержимое» страницы CMS следующее:

{{block type="vps_featured/list" name="vps_featured_list" attribute_name="best_sellers" template="catalog/product/sale_list.phtml"}}

Так как он расширяется Mage_Catalog_Block_Product_List, я получаю все навороты для страницы со списком продуктов, включая панель инструментов. Тем не менее, пейджер не там. Я попробовал несколько разных предложений, но ни одно из них не помогло.

Я заглянул в Toolbar.php в коде ядра и нашел, где он вызывает getPagerHtml. Я поместил туда несколько отладочных операторов и определил, что она вызывает эту функцию при размещении моего пользовательского блока на странице, но $this->getChild('product_list_toolbar_pager') не возвращает блок, предположительно потому, что его там нет. Я попытался добавить блок, используя XML-файл обновления макета и добавив теги <frontend><layout><updates>... в мою конфигурацию, но, похоже, это ничего не дало.

У меня есть расширение CommerceBug от Alan Storm, поэтому я поднял его и экспортировал XML-макет страницы. Он вообще не содержит какого-либо блока панели инструментов, несмотря на то, что панель инструментов находится на странице и не работает только пейджер. Если я делаю то же самое на целевой странице категории, она показывает блок панели инструментов в макете XML. Так что я явно что-то здесь упустил, но я не знаю, что. Я надеюсь, что кто-то может помочь:)

Brian

Ответы [ 2 ]

0 голосов
/ 06 июня 2012
0 голосов
/ 26 апреля 2011

Как оказалось, найденное решение ЗДЕСЬ прекрасно работает! Вы должны добавить блок, используя XML-файл Layout Update, а не добавлять его в раздел содержимого. Я до сих пор не понимаю, почему, но это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...