mikeevstropov Опубликовано 29 октября, 2015 Жалоба Поделиться Опубликовано 29 октября, 2015 (изменено) Здравствуйте! И снова Я =)Мне нужно выводить одну картину в товаре, в случае если товар принадлежит определенной категории, и другую если это не так.Мое решение: {$isexist = true} // поиск нужной категории {foreach from=$product->categories item=cat} {if $cat->name == 'CATEGORY_NAME'} <img src="design/{$settings->theme|escape}/images/yes.png"> {$quality_default = false} {/if} {/foreach} // если категория не обнаружена {if $isexist} <img src="design/{$settings->theme|escape}/images/no.png"> {/if} Скажите, можно ли это сделать без цикла и желательно без assign? и рыбку съесть... Изменено 29 октября, 2015 пользователем mikeevstropov Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 29 октября, 2015 Жалоба Поделиться Опубликовано 29 октября, 2015 {foreach from=$product->categories item=cat} это старый метод, давно уже можно делать вот так (так проще и лаконичней): {foreach $product->categories as $cat} Цитата Ссылка на сообщение Поделиться на другие сайты
mikeevstropov Опубликовано 29 октября, 2015 Автор Жалоба Поделиться Опубликовано 29 октября, 2015 {foreach from=$product->categories item=cat}это старый метод, давно уже можно делать вот так (так проще и лаконичней):{foreach $product->categories as $cat}Учту, спасибо =) Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 29 октября, 2015 Жалоба Поделиться Опубликовано 29 октября, 2015 можно достать ключи и проверить на айди категории вот так: {$cat_ids=$product->categories|@array_keys} {if in_array(6,$cat_ids)}fuck{/if} где 6 айди той категории которую надо проверить Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 29 октября, 2015 Жалоба Поделиться Опубликовано 29 октября, 2015 можно достать ключи и проверить на айди категории вот так:{$cat_ids=$product->categories|@array_keys} {if in_array(6,$cat_ids)}fuck{/if} где 6 айди той категории которую надо проверить Цитата Ссылка на сообщение Поделиться на другие сайты
mikeevstropov Опубликовано 29 октября, 2015 Автор Жалоба Поделиться Опубликовано 29 октября, 2015 (изменено) можно достать ключи и проверить на айди категории вот так: {$cat_ids=$product->categories|@array_keys} {if in_array(6,$cat_ids)}fuck{/if} где 6 айди той категории которую надо проверить %меня переполняют эмоции% Здорово =) Спасибо за помощь! Изменено 29 октября, 2015 пользователем mikeevstropov Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 29 октября, 2015 Жалоба Поделиться Опубликовано 29 октября, 2015 ХуRcе...Тише тише, скрытый мат также запрещен, за такое в бан пошлют . Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 29 октября, 2015 Жалоба Поделиться Опубликовано 29 октября, 2015 mishanya, зачем же так усложнять? {if $product->categories.6} товар относится к категории ID=6 {else} товар НЕ относится к категории ID=6 {/if} Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 29 октября, 2015 Жалоба Поделиться Опубликовано 29 октября, 2015 mishanya, зачем же так усложнять? {if $product->categories.6} товар относится к категории ID=6 {else} товар НЕ относится к категории ID=6 {/if} Можно еще так: {if $product->categories[6]} товар относится к категории ID=6 {else} товар НЕ относится к категории ID=6 {/if} Цитата Ссылка на сообщение Поделиться на другие сайты
mikeevstropov Опубликовано 29 октября, 2015 Автор Жалоба Поделиться Опубликовано 29 октября, 2015 Думаю еще чуть-чуть и весь код уложится в одну строку Цитата Ссылка на сообщение Поделиться на другие сайты
Решение Kors Опубликовано 30 октября, 2015 Решение Жалоба Поделиться Опубликовано 30 октября, 2015 Он и так практически в одну строку. А можно и буквально: <img src="design/{$settings->theme|escape}/images/{if $product->categories.6}yes.png{else}no.png{/if}"> Цитата Ссылка на сообщение Поделиться на другие сайты
kionlife Опубликовано 14 января, 2016 Жалоба Поделиться Опубликовано 14 января, 2016 (изменено) ребян, помогите, не работает: {get_featured_products var=featured_products} {if $featured_products} {foreach $featured_products as $product} ... {if $product->categories.9} ok {else} null {/if} ... {/foreach} {/if} Что не так? Изменено 14 января, 2016 пользователем kionlife Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 14 января, 2016 Жалоба Поделиться Опубликовано 14 января, 2016 ребян, помогите, не работает: {get_featured_products var=featured_products} {if $featured_products} {foreach $featured_products as $product} ... {if $product->categories.9} ok {else} null {/if} ... {/foreach} {/if} Что не так? то что виджеты не передают категорию товара, на главной это работать не будет. там надо добавлять выборку категорий. Цитата Ссылка на сообщение Поделиться на другие сайты
madison21 Опубликовано 17 сентября, 2018 Жалоба Поделиться Опубликовано 17 сентября, 2018 Народ, а если несколько категорий надо выбрать?Через запятую просто не срабатывает.. Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 17 сентября, 2018 Жалоба Поделиться Опубликовано 17 сентября, 2018 Используйте{if $product->categories.9 || $product->categories.23 ||$product->categories.37} Перечислением через запятую вряд ли кратко выйдет. Либо цикл добавлять придется. Либо сложное что-то писать с array_intersect или чем-то подобным. Цитата Ссылка на сообщение Поделиться на другие сайты
madison21 Опубликовано 17 сентября, 2018 Жалоба Поделиться Опубликовано 17 сентября, 2018 Используйте{if $product->categories.9 || $product->categories.23 ||$product->categories.37} Перечислением через запятую вряд ли кратко выйдет. Либо цикл добавлять придется. Либо сложное что-то писать с array_intersect или чем-то подобным. Большое спасибо за подсказку, phukortsin Я тут поискал и нашёл решение как это дело решить через цикл, но думаю в моём случае это решение не подойдёт, оно предлагалось для движка webasyst shop-script Замена длинного участка кода.. {if $_cat.categoryID==104183 || $_cat.categoryID==104206 || $_cat.categoryID==104207 || $_cat.categoryID==104244 || $_cat.categoryID==104258 || $_cat.categoryID==104316 || $_cat.categoryID==104660 || $_cat.categoryID==104669 || $_cat.categoryID==104687 || $_cat.categoryID==104688 || $_cat.categoryID==104691 || $_cat.categoryID==104782 || $_cat.categoryID==104791 || $_cat.categoryID==104794 || $_cat.categoryID==105065 || $_cat.categoryID==105071} таким образом.. {$selected = array('104207','104206','105071')} //и т.д. {if $_cat.categoryID|in_array:$selected} Код {/if} как думаете, такой цикл сработает в симпле?это вроде тот же php Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 17 сентября, 2018 Жалоба Поделиться Опубликовано 17 сентября, 2018 Задавать вопросы типа "cработает или нет" не стоит. Потратьте пару минут и проверьте.Вряд ли это подойдет. И там не цикл совсем... Цитата Ссылка на сообщение Поделиться на другие сайты
madison21 Опубликовано 17 сентября, 2018 Жалоба Поделиться Опубликовано 17 сентября, 2018 Задавать вопросы типа "cработает или нет" не стоит. Потратьте пару минут и проверьте.Вряд ли это подойдет. И там не цикл совсем...Понял Вас.. буду пробовать. И если возможно, последний вопрос..Возможно ли в моём случае указывать не все категории (перечислять в моём случае подкатегории), а указать основную родительскую категорию, и правило распространится и на все подкатегории этой основной?, Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 17 сентября, 2018 Жалоба Поделиться Опубликовано 17 сентября, 2018 Проверьте. По-моему, так не пойдет. Если очень хочется, надо дорабатывать в шаблоне или в PHP... Цитата Ссылка на сообщение Поделиться на другие сайты
madison21 Опубликовано 9 октября, 2018 Жалоба Поделиться Опубликовано 9 октября, 2018 Спасибо большое.. Буду использовать ваш вариант.. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 10 октября, 2018 Жалоба Поделиться Опубликовано 10 октября, 2018 Спасибо большое.. Буду использовать ваш вариант..В шаблоне можно использовать что-то вроде этого: {if in_array($object->id, [1,2,3,4,5])} ... {/if} Цитата Ссылка на сообщение Поделиться на другие сайты
madison21 Опубликовано 10 октября, 2018 Жалоба Поделиться Опубликовано 10 октября, 2018 В шаблоне можно использовать что-то вроде этого: {if in_array($object->id, [1,2,3,4,5])} ... {/if} Благодарю Noxter.Попробую на досуге и вашу конструкцию использовать. Цитата Ссылка на сообщение Поделиться на другие сайты
Consult Опубликовано 2 июня, 2019 Жалоба Поделиться Опубликовано 2 июня, 2019 а как проверить принадлежность товара к категории и всем подкатегориям?т.е мне нужно выводить определенную картинку, если товар принадлежит к категории или любой из подкатегории этой категории Цитата Ссылка на сообщение Поделиться на другие сайты
Consult Опубликовано 2 июня, 2019 Жалоба Поделиться Опубликовано 2 июня, 2019 {if $category->path[0]->id==8}...{/if} вроде таквыведет ... для категории с id 8 и всех подкатегорий Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.