Как показать сообщение, если в категории нет товаров с плагином магазина exp:resso?

Я использую последнюю версию EE2 и плагин под названием Exp:resso store.

У меня есть продукты, отнесенные к категории, и по большей части все это работает нормально. Ниже мой код:

<div class="col-md-7">
    {exp:channel:categories channel="products" style="linear"}
    <section class="section accordion repeater">
        <h3>
            {category_name}
            <div class="icon">
                <img src="/assets/local/img/plus-icon.jpg" alt="">
            </div>
        </h3>
        <div class="accordion-content">
            {exp:store:search orderby="title" sort="asc" category="{category_id}"}
                {exp:store:product entry_id="{entry_id}"}
                <p class="accordion-download">
                    <a href="#">{title} - {price}</a>
                    <span><a href="#"><img src="/assets/local/img/add-to-cart.jpg" alt="">Add to cart</a></span>
                </p>
                {/exp:store:product}                
            {/exp:store:search}                     
        </div>
    </section>
    {/exp:channel:categories}
</div>

Я пытаюсь найти способ показать сообщение No products exist, если внутри категории ничего нет. Я пробовал использовать {count}, {total_results} и {total_rows}, чтобы проверить, нет ли товаров. Проблема в том, что все, что я пытаюсь сделать, явно неправильно, потому что ничего не выводится :/

заранее спасибо


person Andy Holmes    schedule 23.12.2015    source источник


Ответы (1)


Тег поиска магазина является оболочкой для пары тегов записей канала, поэтому вам нужно будет использовать пару тегов {if no_results}.

<div class="col-md-7">
    {exp:channel:categories channel="products" style="linear"}
    <section class="section accordion repeater">
        <h3>
            {category_name}
            <div class="icon">
                <img src="/assets/local/img/plus-icon.jpg" alt="">
            </div>
        </h3>
        <div class="accordion-content">
            {exp:store:search orderby="title" sort="asc" category="{category_id}"}
                {exp:store:product entry_id="{entry_id}"}
                <p class="accordion-download">
                    <a href="#">{title} - {price}</a>
                    <span><a href="#"><img src="/assets/local/img/add-to-cart.jpg" alt="">Add to cart</a></span>
                </p>
                {/exp:store:product}
                {if no_results}
                  There are no products
                {/if}
            {/exp:store:search}                     
        </div>
    </section>
    {/exp:channel:categories}
</div>

Следует также упомянуть, что если вы не создаете форму для добавления товаров в корзину, вы можете использовать переменную {store_field_short_name:price}, чтобы уменьшить количество запросов на вашей странице. Доступ к большинству хранимых вещей, таких как артикул, вес, измерения, можно получить, используя короткое имя поля, за которым следует :variable.

person Justin Long    schedule 23.12.2015
comment
Спасибо за ответ, попробую завтра, когда вернусь на работу - person Andy Holmes; 24.12.2015
comment
Нет проблем, в будущем вы, вероятно, получите больше просмотров, если разместите сообщение на специальном сайте EE expressionengine.stackexchange.com. - person Justin Long; 24.12.2015
comment
К сожалению, это по-прежнему ничего не выводит на экран - person Andy Holmes; 24.12.2015
comment
Возможно, у вас возникли проблемы с вложенными тегами. Вы можете попробовать переместить тег поиска магазина во вставку и передать category_id в качестве переменной для встраивания. - person Justin Long; 24.12.2015