Для моего пользовательского модуля я получил продукт от производителя. Для шаблона я скопировал list.phtml
.
В файле шаблона появляется пагинация, но он показывает весь товар вместо выбранного ограничения на страницу. Сортировка тоже не работает.
Как я могу заставить это работать ??
Это мой файл блока:
protected function _getProductCollection()
{
if (is_null($this->_productCollection)) {
$layer = $this->getLayer();
$brand_id = $this->getRequest()->getParam('id');
$collection = Mage::getModel('catalog/product')->getCollection();
$collection->addAttributeToSelect('*');
$collection->addFieldToFilter(array(
array('attribute' => 'manufacturer', 'eq' => $brand_id)
));
}
return $collection;
}
magento-1.8
frontend
sorting
pagination
Piyush
источник
источник
Вы также должны использовать следующие фильтры:
Таким образом, ваш полный код становится:
источник
Это может быть не так в вашем случае, но это может помочь кому-то еще, кто имеет эту проблему. У меня была эта проблема при тестировании пользовательских изменений в
getProductCollection()
.Мне удалось это исправить, удалив добавленный мной код регистрации, который отмечал количество возвращенной коллекции. Я полагаю, что все, что запрашивает загрузку Коллекции, приводит к тому, что
getProductCollection()
метод заставит коллекцию преждевременно загружать свои продукты и предотвратит последующие изменения порядка коллекции и ограничения результата, применяемые для элементов управления подкачкой.источник
$collection->getSize()
. Он будет выполнять отдельныеSELECT COUNT(*)
с текущими фильтрами коллекции.Вы должны переопределить
_prepareLayout()
и установить данные, как показано ниже.дайте мне знать, если у вас есть запрос.
источник
Перейдите в раздел «Управление категориями» и установите для параметра «Якорь» значение «Да».
источник