Как разместить список товаров в Хабе? Есть решение

Есть ли возможность разместить список товаров на страницах тем, созданных в приложении Хаб?

Появилась необходимость в темах приложения Хаб (созданы по шаблону topic.page.html) разместить различные списки товаров. Цель - выводить на страницах тем разные списки товаров в зависимости от указанного в настройках темы дополнительного параметра (дополнительный параметр можно прописать в разделе Мета)

Примечание: нашёл код, который работает для страниц приложения Магазин, но в темах приложения Хаб он не работает:

{if $page.status == 'special'}
<div class="special_offer">
...
</div> {/if}

Спасибо!

8 ответов

  • 1
    Эрик Webasyst 10 декабря 2015 11:05 #

    Вот эта статья должна помочь https://www.shop-script.ru/help/24/embed-product-set/

    • +1
      Vovander Vovander 10 декабря 2015 14:16 #

      Спасибо!

      На часть вопросов статья даёт ответ. Это помогает вывести заданный список товаров на ВСЕХ страницах тем. Как правильно прописать код условия, чтобы желаемый список товаров выводился только на тех страницах, где прописан дополнительный параметр special=true ?

      Конструкция {if $page.status == 'special'} ... {/if} на страницах тем приложения Хаб не работает

  • 1
    Vovander 12 декабря 2015 13:45 #

    Небольшое дополнение. Стоит тема Купить Просто. Задан вопрос разработчику, как добиться корректного отображения слайдера на страницах тем приложения Хаб.

    На основе статьи https://www.shop-script.ru/help/24/embed-product-set/ был сформирован следующий код:
    <!-- slider -->
    {if $wa->shop}
    {*insert product slider*}
    {$s_products = $wa->shop->products('set/special')}

    {if $s_products && count($s_products)}
    <div class="product-slider">
    <div class="product-slider-name">Рекомендуем!</div>
    {include file="`$wa->shop->themePath('buysimply')`product-slider.html" sliderId="special" s_products=$s_products}
    </div>
    {/if}
    {/if}

    Код выводит список товаров на странице темы, но неправильно отображается.

    И проблема, как правильно прописать код с условием вывода, тоже ещё не решена.

  • 1
    Vovander 14 декабря 2015 06:11 #

    Для темы Купить Просто основная проблема с выводом слайдера на вышеуказанных страницах приложения Хаб решилась при поддержке автора темы Игоря Колмакова следующим образом:

    1. В файле topic.page.html в нужном месте вставляем код:

    <!-- slider -->
    {if $wa->shop}
    {*insert product slider*}
    {$s_products = $wa->shop->products('set/gemor')}
    {if $s_products && count($s_products)}
    <div class="product-slider">
    <div class="product-slider-name">Рекомендуем!</div>
    {include file="`$wa->shop->themePath('buysimply')`product-slider.html" sliderId="gemor" s_products=$s_products}
    </div>
    {/if}
    {/if}

    где gemor - название Вашего списка (надеюсь, у Вас название будет другое)

    2. В файле buysimply.hub.css добавляем стили для слайдера:

    /* * * product-slider.html * * */
    .product-slider { position:relative; margin-bottom:40px; }
    .product-list-modify { position:relative; margin-bottom:40px; }
    .product-slider-name { text-transform:uppercase; font-family: "Georgia"; font-size: 16px; border-width: 1px 1px 0; border-style: solid; margin-bottom:-1px; position: relative; z-index: 1; padding: 10px; display: inline-block; }
    .product-list-modify .product-slider-name { position: absolute; top: -9px; left: 0; }
    .product-slider ul { margin:0; padding:0; }
    .product-slider .product-block { padding:5px 10px;/*15px*/ border:1px solid; text-align:center; margin:15px 0; }
    .product-slider .product-block { border-color: transparent; }
    .product-slider a { text-decoration: none; outline: none; border: none; }
    .product-slider .description { display:none; }
    .product-slider .name { overflow:hidden; height: 40px; }
    .product-slider .image { display: table; width: 100%; margin-bottom:10px; }
    .product-slider .corner.text { max-width:152px; overflow:hidden; }
    .product-slider .image .corner.right.text { left: 0px; right: auto; }
    .product-slider .image a { height:152px; text-align: center; display: table-cell; vertical-align: middle; }
    .product-slider .image img { max-width:152px; max-height:152px; vertical-align: middle; }
    .product-slider .prd_addition { display: inline-block; margin-top: 8px; vertical-align: middle; }/*fix icon right*/
    .product-slider form.addtocart { line-height: 36px; margin-top: 8px; display: inline-block; vertical-align: middle; }
    .product-slider .jcarousel-direction-rtl { direction: rtl; }
    .product-slider .jcarousel-container-horizontal { width: 738px; border: 1px solid; }
    .product-slider .jcarousel-clip { overflow: hidden; }
    .product-slider .jcarousel-clip-horizontal { width: 736px; margin:0 1px; }
    .product-slider .jcarousel-item { width: 184px; }
    .product-slider .jcarousel-prev, .product-slider .jcarousel-next { position:absolute; top:-34px; right:0px; cursor:pointer; height: 24px; width: 24px; border-radius: 50%; text-align: center; }
    .product-slider .jcarousel-prev { right: 28px; }
    .product-slider .jcarousel-prev i, .product-slider .jcarousel-next i { font-size: 20px; line-height: 24px; }
    .product-slider .jcarousel-prev-disabled, .product-slider .jcarousel-next-disabled,
    .product-slider .jcarousel-prev-disabled:hover, .product-slider .jcarousel-next-disabled:hover { background: #f3f3f3 !important; cursor:default; } 

    .product-slider .jcarousel-prev-disabled i, .product-slider .jcarousel-next-disabled i { color: #a8a8a8 !important; }

    3. В конце файла head.html в приложении Хаб добавляем скрипты для слайдера:

    <script type="text/javascript" src="{$wa_active_theme_url|replace:'/hub/':'/shop/'}jquery.jcarousel.min.js?v2.9.0"></script>
    <script type="text/javascript">
    $(document).ready(function(){
    $('ul[class^="product-slider-"]').jcarousel({
    /*
    wrap: 'circular',
    auto: 1,
    */
    scroll: 1,
    buttonNextHTML: '<div><i class="icon-angle-right"></i></div>',
    buttonPrevHTML: '<div><i class="icon-angle-left"></i></div>'
    });
    });
    </script>

  • 1
    Vovander 14 декабря 2015 06:18 #

    Теперь осталось решить вопрос, как правильно прописать код для вывода списка товаров (в данном случае слайдера товаров) на определённой странице с использованием дополнительного параметра страницы.

    Нужна помощь, вышеуказанные советы не помогли.

  • 1
    Vovander 14 декабря 2015 14:39 # Решение

    С божьей помощью, а также с подсказками автора темы Купить Просто Игоря Колмакова, разобрался с условием вывода списка товаров на странице темы в зависимости от присвоенного параметра custom parameters:

    1. Для тем, созданных с функциональностью "Страница", то есть на основе шаблона topic.page.html в приложении Хаб:

    {if !empty($topic.params.special)}
    Ваш код ...

    {/if}

    Параметр прописывается во вкладке Мета в поле custom parameters следующим образом: special=true или special=1

    2. Для страниц, созданных на основе файла шаблона page.html приложения Хаб действует другой код, о чём писал в том числе Александр выше. К тому же дополнительный параметр на таких страницах прописывается в другом месте:

    {if !empty($page.special)} Ваш код {/if}

    Всем спасибо!

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

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