к сожалению, это не работает, потому что в методе _getProductCollection()
коллекция уже инициализирована с размером страницы.
Более гибким решением может быть наблюдение за событием catalog_product_collection_load_before
, которое, как следует из названия, отправляется до загрузки коллекции.
Ниже приведен пример (при условии, что расширение yourmodule
записано в yourpackage
):
ШАГ 1: Определите своего наблюдателя в config.xml
в разделе global
вашего файла расширения config.xml
вставьте что-то вроде:
<events>
<catalog_product_collection_load_before>
<observers>
<yourpackage_yourmodule_catalog_observer>
<type>singleton</type>
<class>yourpackage_yourmodule/catalog_observer</class>
<method>limitPageSize</method>
</yourpackage_yourmodule_catalog_observer>
</observers>
</catalog_product_collection_load_before>
</events>
ШАГ 2: Определите свой класс Observer в папке Model\Catalog
:
<?php
class Yourpackage_Yourmodule_Model_Catalog_Observer
{
public function limitPageSize($observer)
{
#TODO: Insert the logic you need to differentiate when to apply the following
$event = $observer->getEvent();
$collection = $event->getCollection();
$collection->setPageSize(3);
return $this;
}
}
Надеюсь, это поможет.
С уважением,
Алессандро Рончи