Jump to content

Сначала "в наличии" в конце "нет в наличии"


Recommended Posts

Показывались в списке товаров, которые находятся в категории.

Сейчас стоит по цене сортировка.

Хочу куда-нить прописать ORDER BY available_for_order DESC :)

Что бы всегда показывались сначала те, что доступные для заказа (это у меня флаг "наличия" так сказать), а только потом, которые не доступны для заказа.

 

Пробовал в classes/Category.php в getProducts писать, но она почему-то вызывается только тогда, когда я уже открыл товар для просмотра, а не когда просматриваю товары в категории.

Link to comment
Share on other sites

предполагаю что в getProducts в блоке

 if ($orderBy == 'id_product' OR $orderBy == 'date_add')
  $orderByPrefix = 'p';
 elseif ($orderBy == 'name')
  $orderByPrefix = 'pl';
 elseif ($orderBy == 'manufacturer')
 {
  $orderByPrefix = 'm';
  $orderBy = 'name';
 }
 elseif ($orderBy == 'position')
  $orderByPrefix = 'cp';

 

надо добавить что-то типа

elseif ($orderBy == 'available_for_order')
  $orderByPrefix = 'p';

 

и потом в контроллере в productListAssign вызывать уже с нужными параметрами

Link to comment
Share on other sites

Уже разобрался.

Если включен blocklayered, то надо в нем править.

я в него написал просто

p.available_for_order DESC, p.price ASC,

 

теперь у меня всегда показывается то, что доступно к заказу и сортируется по цене. Удобно :)

Link to comment
Share on other sites

Последняя версия этого модуля.

файл blocklayered.php

 

функция getProductByFilters

Там перед закрывающей скобкой есть строки

GROUP BY p.id_product ORDER BY 

напиши туда

GROUP BY p.id_product ORDER BY p.available_for_order DESC, p.price ASC, 

Link to comment
Share on other sites

у меня такая строка, версия 1,75

 

GROUP BY p.id_product ORDER BY '.Tools::getProductsOrder('by', Tools::getValue('orderby'), true).' '.Tools::getProductsOrder('way', Tools::getValue('orderway')).

 

Я так понимаю, сортировка происходит по тому как выбрано пользователем по выпадающему окну которое верху списка товаров или если не указано то умолчание которое задается через админку. Если тупо поменять то оно же работать не будет.

Link to comment
Share on other sites

у меня такая строка, версия 1,75

 

GROUP BY p.id_product ORDER BY '.Tools::getProductsOrder('by', Tools::getValue('orderby'), true).' '.Tools::getProductsOrder('way', Tools::getValue('orderway')).

 

Я так понимаю, сортировка происходит по тому как выбрано пользователем по выпадающему окну которое верху списка товаров или если не указано то умолчание которое задается через админку. Если тупо поменять то оно же работать не будет.

 

Тебе после ORDER BY надо добавить p.available_for_order DESC, p.price ASC,

 

А вобще, если что, то стандартная сортировка не контачит с этим модулем.

Т.е. если отсортировать по Цене, а потом в блоке фильтрации ченить выбрать, то твоя сортровка по цене слетит :)

Link to comment
Share on other sites

Сортировка у меня работает отлично с фильтром, ничего не сбрасывается. Возможно просто нужно обновить файлы шаблона. Попробую дописать в начале отпишусь.

Link to comment
Share on other sites

GROUP BY p.id_product ORDER BY p.available_for_order DESC, p.price ASC, '.Tools::getProductsOrder('by', Tools::getValue('orderby'), true).' '.Tools::getProductsOrder('way', Tools::getValue('orderway')).

 

привел к такому виду но ничего не поменялось, то ли кеширование где-то нужно почистить то ли опять не понял куда прописать, у меня кстати 1.4.6.2

Link to comment
Share on other sites

GROUP BY p.id_product ORDER BY p.available_for_order DESC, p.price ASC, '.Tools::getProductsOrder('by', Tools::getValue('orderby'), true).' '.Tools::getProductsOrder('way', Tools::getValue('orderway')).

 

привел к такому виду но ничего не поменялось, то ли кеширование где-то нужно почистить то ли опять не понял куда прописать, у меня кстати 1.4.6.2

 

А он у тебя через ajax обновляется, когда например на след. страницу перелистываешь ?

В админке кэш и перекомпиляцию отключал ?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...