Вывод товаров на главной странице с пагинацией Есть решение

Давным-давно запарился я одной темой - нужно было вывести все товары ИМ (их немного, не больше 200) на главной странице, соотвественно с пагинацией. Искал я на форумах, писал вопросы, никто мне ответа так и не дал, доблесные разработчики webasyst так же, умалчивали, похоже лень было разбираться в реализации, но учитывая костыли в решении котором я предложу, они такую возможность не учли.

В общем через долгое время, я вернулся к проблеме, и что-то получилось:

{if $wa->shop}

{$products_on_page = 25}
{$page_count = ceil(count($wa->shop->products(''))/$products_on_page)}
{$curr_page = $smarty.get.page-1}
{if $curr_page < 0}{$curr_page = 0}{/if}
{$products = $wa->shop->products('', $products_on_page*$curr_page, $products_on_page)}
{include file="list-thumbs.html" products=$products}

<div class="pagination">
{wa_pagination total=$page_count attrs=['class' => "menu-h"]}
</div>

{/if}

Решение не самое изящное, но что заработало, то заработало. Если есть предложения в упрощении, буду благодарен.

Если нужно вывести блок на страницах shop-script, то нужно сменить строку

{include file="list-thumbs.html" products=$products}

на

{include file="`$wa->shop->themePath('ID ВАШЕЙ ТЕМЫ')`list-thumbs.html" products=$products}

Данный способ выводит все товары, если нужно вывести из определенного списка, то заменяем найденные

$wa->shop->products(''

на

$wa->shop->productSet('ID СПИСКА'

5 ответов

  • 2
    Николай Webasyst 31 мая 2017 18:06 # Решение

    Спасибо за размещённую информацию, надеюсь она окажется полезна другим пользователям.

  • 1
    Dmitriy 20 июня 2017 07:07 #

    Спасибо за решение. Помогло.

  • 1
    Dmitriy 20 июня 2017 08:07 #

    Эх, а фильтр-то не выводится. Никоим образом. Жаль.

  • 1
    Петр 7 марта 2018 15:10 #

    а возможно использовать вместо

    $wa->shop->products

    $wa->shop->orders

    ???

  • 1
    Иван Иванов 12 сентября 2018 16:36 #

    у кого-нибудь получилось вывести фильтр?

    Прописал сдедующий код:

    <div class="l-wrapper">
    <div class="cols-2">
    {$_category_id = 2}
    {$_category = $wa->shop->category($_category_id)}
    {$_category_product = $wa->shop->products("category/`$_category_id`")}
    
    {$products_on_page = 44}
    {$page_count = ceil(count($wa->shop->products(''))/$products_on_page)}
    {$curr_page = $smarty.get.page-1}
    {if $curr_page < 0}{$curr_page = 0}{/if}
    {$products_kol = $wa->shop->products("category/`$_category_id`", $products_on_page*$curr_page, $products_on_page)}
    <div class="cols-{$cols}">
        <div class="sidebars-outer">
     {include file='sidebar-left.html' filter=$filters}
    </div>
        </div>
    <div class="js-content content   with-left-sidebar " style="min-height: 0px;"><div class="content-block">    
    {include file="list-thumbs.html" products=$products_kol}
    
    <div class="pagination">
    {wa_pagination total=$page_count attrs=['class' => "menu-h"]}
    </div>
    </div></div>

    фильтр как бы выводится, но ниодной характеристики в нем нет. Блок с категориями, брендами и блоком вы смотрели выводится

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите