Вывести в категории сначала Хит продаж, потом остальные товары

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

Artёm
Artёm

Сообщение #1 Artёm » 06.04.2021, 13:39

Приветствую!

Есть ли возможность в Категории сначала выводить товары с меткой Хиты продаж, а затем все остальные?
Я так понимаю нужно править шаблон products_content.tpl, что то вроде

{if $products}
{foreach $products as $product}
<div class="product_item col-xs-6 col-sm-4 col-md-4 col-lg-4 col-xl-3">
{if $product->featured}
{include file="product_list.tpl"}
{/if}
</div>
{/foreach}

{foreach $products as $product}
<div class="product_item col-xs-6 col-sm-4 col-md-4 col-lg-4 col-xl-3">
{if !$product->featured}
{include file="product_list.tpl"}
{/if}
</div>
{/foreach}
{else}
<div class="col-xs-12">
<div class="boxed boxed--big boxed--notify ">
<span data-language="products_not_found">{$lang->products_not_found}</span>
</div>
</div>
{/if}

Понятно, что этот код не работает)

makki M
makki M
Репутация: 199
Сообщения: 697
Зарегистрирован: 12.08.2016
С нами: 7 лет 7 месяцев
Откуда: Киев
Сайт

Сообщение #2 makki » 06.04.2021, 14:40

Правка шаблона тут ни при чем
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS 2 (с 3-й и 4-й версией не работаю)

Artёm
Artёm

Сообщение #3 Artёm » 06.04.2021, 15:49

Без правки php не обойтись?

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #4 korshunov » 07.04.2021, 06:32

Если товаров на странице немного, в пределах лимита пагинации, то этот код даст нужное.
Но в общем случае он работать не будет, для этого потребуется переделка в PHP-скриптах, так как стандартно для товаров поддерживаются только сортировки по цене, по наличию, позиции в админке, случайная.

Простейший вариант: в ProductsEntity.php сделать
case 'position':
$orderFields = ['p.featured DESC', 'p.position DESC'];
break;

Artёm
Artёm

Сообщение #5 Artёm » 07.04.2021, 07:03

Спасибо, буду пробовать


Название раздела: Полезные решения для OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Полезные решения для OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 2 гостя