FilterPro не работает пагинация в производителях
15 ноября 2014 в 18:45 в категории Плагины и модули 5 комментариевПри создании интернет магазина зачастую используют CMS OpenCart. Поскольку эта бесплатная платформа позволяет создать достаточно функциональный интернет магазин и под нее создано большое количество как платных так и бесплатных модулей.
Одним из основных модулей, пожалуй, без которого невозможно обойтись, создавая интернет магазин — это фильтр товаров в категории. И один из популярных таких модулей является FilterPro.
При работе с данным модулем, возможно вы могли столкнуться с проблемой пагинации в разделе производителей, в случае если вы используете данный модуль на странице товаров производителя. Проблема заключается в том, что при включении данного модуля на странице товаров производителя FilterPro подтягивает не правильную пагинацию.
Ошибка находится в файле контроллера модуля FilterPro (catalog/controller/module/filterpro.php) в 501-ой строке, и исправить ее достаточно легко. Стоит только найти строку:
$pagination->url = $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&page={page}');
Как мы видим пагинация создается только в случае если мы просматриваем категорию. Поэтому, нам необходимо добавить еще одно условие, которое переопределит нашу пагинацию, в случае если мы находимся в списке товаров производителя, таким образом мы добавим после этой строки:
if($manufacturer_id != false){
$pagination->url = $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $manufacturer_id . '&page={page}');
}
И модуль выведет корректную пагинацию. На этом все, если данное решение вам помогло — ставьте «лайк» и пишите комментарии. Если у вас есть еще вопросы — задавайте, буду рад помочь.

(515 оценок, среднее: 4,90 из 5)
5 комментариев
Встречается на версиях 2.4.2.2 и 2.4.2.3.1
а для каких это версий? посмотрел в код — исправлено
у меня не работала пагинация в версии filterpro_v2.4.2.3.1(mega)…..
скачал новую версию..кусочек кода взял и заменил у себя — и все заработало!(:smile:)
заменил строку
$pagination->url = $this->url->link(‘product/category’, ‘path=’ . $this->request->get[‘path’] . ‘&page={page}’);
на
if (isset($this->request->post[‘manufacturer_id’])) {
$pagination->url = $this->url->link(‘product/manufacturer/info’, ‘manufacturer_id=’ . $this->request->post[‘manufacturer_id’] . ‘&page={page}’);
} else {
$pagination->url = $this->url->link(‘product/category’, ‘path=’ . $this->request->get[‘path’] . ‘&page={page}’);
}
грубо говоря тоже самое что и в моей версии, только через условие ELSE. Разницы особой не вижу. Если знаете — напишите.
Спасибо за решение. Давно искал