Appixia в Prestashop 1.4.9 - Как добавить Allow 2 CategoryId в один и тот же фильтр? Это возможно?

Appixia в Prestashop 1.4.9

Я использую BasicCategoryListActivity для отображения категорий в моем магазине. Я пытаюсь отфильтровать список категорий по определенному идентификатору. Как добавить 2 CategoryId в один фильтр? Это возможно?


person Billy Chiam    schedule 19.03.2013    source источник


Ответы (1)


Этот ответ обновлен для Appixia Mobile Engine 5 с модулем Prestashop 1.0.4.

Модули, которые вы сейчас используете, в основном предназначены для работы с одним фильтром идентификатора категории. Как и все, что связано с Appixia, вы можете обойти большинство ограничений и делать все, что захотите. Вот две идеи:

Обходной путь 1. Реализуйте это с помощью переопределения плагина

При таком подходе вам не нужно ничего менять в своем приложении ... вы можете остаться с существующим модулем и использовать фильтр одиночного идентификатора категории. Установите фильтр для одиночного идентификатора категории и создайте для него какое-нибудь большое несуществующее число (например, 1001).

На самом деле мы сделаем так, чтобы сервер отвечал продуктами для обеих категорий одновременно, когда запрашивается категория 1001.

Вы можете увидеть несколько примеров переопределения плагинов здесь.

Необходимое переопределение находится в Items.php. Посмотрите на функцию overrideItemListFilters, она идеально подходит для ваших нужд. Просто найдите тип фильтра Equal со значением 1001 и измените его в переопределении на фильтр InGroup с вашими 2 идентификаторами категорий.

Временное решение 2. Переключитесь на более продвинутый модуль списка элементов в приложении

Другой альтернативный подход - только изменить свое приложение и не касаться сервера. Основные действия со списком элементов довольно ограничены. Если вы перейдете к более мощному модулю списка элементов в своем приложении, у вас будет больше контроля над вашими фильтрами. Взгляните на это руководство. Списки элементов типа ItemGridView поддерживают любой фильтр, поэтому вы можете указать InGroup напрямую.

person talkol    schedule 19.03.2013