Условие по ID списка
Добрый день. Подскажите кто-нибудь пожалуйста. Нужен код для вывода условия по ID списка в list-thumbs и product.cart
То есть что я прошу:
{if id списка = список 1}
<div>Бесплатный подъем</div>
{else}
<div>Платный подъем</div>
{/if}
Заранее Большое Спасибо!
9 ответов
Пока что это всё звучит максимально нелогично. Вы уверены, что эта задача слово в слово именно такова и/или не вырвана из контекста условия другой более четкой задачи?
Если вам просто надо вывести конкретный список товаров, то делается это так. В примере имя шаблона и путь к нему нужны свои.
Список он либо существует в вашей системе товаров, либо не существует. Он либо содержит конкретные товары, либо нет. Вы его просто либо выводите по id, либо не выводите.
Приведу пример.
Допустим у нас есть товар и есть шаблон product.cart (часть шаблона страницы товара). Мы не можем проверить список сам по себе, кроме как на существование вообще и только, но можем выяснить не принадлежит ли товар, на странице которого мы находимся, конкретному списку и, если да принадлежит, то вывести одно, а если нет, то что-то другое.
Но с товаром хоть такое условие можно придумать. А что вы хотите изобразить в list-thumbs решительно непонятно.
Предполагается, что списки в системе не зарождаются хаотично, поэтому нам и не нужно выполнять странную проверку в шаблонах на id списка лишь потому, что эти id - известный факт.
У меня просто стоит задача: Вывести текстовое значение в карточке товара если список равен = "список 1. "
То есть я добавил 19 товаров из 30 в список: "список 1", у этих товаров есть бесплатный подъем, а у других нет.
В каталоге отображаются все 30 товаров, но на 19 должно выводиться текстовое значение "БЕСПЛАТНЫЙ ПОДЪЕМ". Я как бы и хочу это реализовать.
Т.е. в итоге как я и предположил выше. Проверять надо товар по условию не состоит ли товар в определенном списке, а не список сам по себе.
На странице товара т.е. в условном product.cart проверить в списке ли товар можно так (вместо list_id подставить свой id списка)
Но, сама по себе идея ну так себе. Нет, безусловно разместить товар в списке можно и даже весь список товаров с "бесплатным подъемом" как-то можно опубликовать и использовать это знание на витрине, но делать нахождение в этом списке отправной точкой для проверки - слишком затратное занятие для list-thumbs.
Я бы предложил вам рассмотреть вариант проверки основанный на специальной характеристике и её значениях. Хар-ка Подъем: бесплатный | платный.
Концептуально все так, но перебор значений - относительно ресурсоемкая операция.
Вероятно, как-то так будет быстрее
P.S. Ориентировался исключительно на приведенный код не проверяя форматы, структуры и пр.
Да, скорее всего так будет лучше. В рамках небольшого списка на странице товара разницу не заметить и всё будет на уровне погрешности, но, если такое применять для кучи в условном list-thumbs и когда товаров много, то очевидно на круг что-нибудь да накапает. Глазами конечно не определить разницу, но в такое иногда "надо просто верить". Где-то на просторах сети встречал давно сравнение foreach vs. in_array... ну и т.д. и т.п.
P.S. Мне сама идея проверки товара в списке не нравится т.к. сам по себе список - весьма обширная штуковина, которая содержит как-то много всего сразу и многое не по делу. Оно в админке вроде бы логично выглядит, когда специальный список создан для каких-то выдающихся товаров и они там красиво лежат, но просится тут почему-то именно характеристика.
Да, идейка так себе... Характеристиками такое решать надо или доппараметрами.
Доп. параметры вообще рулят, но в новом UI всё плохо с ними, поэтому даже не упоминал про них.
Для list-thumbs код аналогичный, но там обычно $product.id меняется на $p.id.
P.S. С характеристикой, имхо, будет лучше. Хотя, если товаров всего 30, а в списке 19, то попробуйте.
"но можем выяснить не принадлежит ли товар, на странице которого мы находимся, конкретному списку и, если да принадлежит, то вывести одно, а если нет, то что-то другое." вот этот код я как раз и прошу, видимо объяснять не умею =)
Большое спасибо за Ваши ответы!