Enhill Posted October 18, 2018 Report Share Posted October 18, 2018 (edited) Добрый день. в симпле есть 2 места, где мы можем посмотреть товары привязанные к бренду: 1) http://demo.simplacms.ru/brands/canon 2) http://demo.simplacms.ru/catalog/fotoapparaty/canon Возникла необходимость во втором случае выводить категории, в которых лежат товары этого бренда. Есть замечательная доработка от ExtraBash и Noxter'a:http://forum.simplacms.ru/topic/7909-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B8-%D0%B2-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B0%D0%BD%D0%B8%D0%B8-%D0%B8%D0%BB%D0%B8-%D0%BB%D0%BE%D0%B3%D0%B8%D0%BA%D0%B0-%D0%B7%D0%B0%D0%B4%D0%BE%D0%BC-%D0%BD%D0%B0%D0%BF%D0%B5%D1%80%D0%B5%D0%B4/ Но как оказалось, с ее помощью выводятся ВСЕ категории, в которых лежат товары бренда. Это отлично подходит для 1 варианта. В случае 2 не логично показывать категорию бренда "Пылесосы", так как мы выбрали бренд в категории "сотовые телефоны". Как можно вывести в бренде только категории деток? Edited October 18, 2018 by Enhill Quote Link to post Share on other sites
Noxter Posted October 18, 2018 Report Share Posted October 18, 2018 {if $category->subcategories} ... {/if} Quote Link to post Share on other sites
Enhill Posted October 18, 2018 Author Report Share Posted October 18, 2018 {if $category->subcategories} ... {/if}Это условие "если есть детки у категории". Не сработает с таким вариантом событий: - Фотоаппараты--- Ручные (присвоен бренд canon)--- Автозаводные (присвоен бренд canon)- Пылесосы CANON (присвоен бренд canon) Если мы зайдем в бренд в фотоаппаратах: фотоаппараты/ручные/canonто получим вот такой список категорий:- Ручные- Автозаводные- Пылесосы CANON Quote Link to post Share on other sites
Noxter Posted October 18, 2018 Report Share Posted October 18, 2018 Это условие "если есть детки у категории". Не сработает с таким вариантом событий: - Фотоаппараты--- Ручные (присвоен бренд canon)--- Автозаводные (присвоен бренд canon)- Пылесосы CANON (присвоен бренд canon) Если мы зайдем в бренд в фотоаппаратах: фотоаппараты/ручные/canonто получим вот такой список категорий:- Ручные- Автозаводные- Пылесосы CANONМоё решение предназначено для страницы бренда http://beta.simplacms.ru/brands/samsung, а не для страницы категории + бренд.Понятное дело вам будет выведено все категории которые есть у бренда.Для страницы категории (если я вас правильно понял) можно использовать простой код: {if $category->subcategories} <ul> {foreach $category->subcategories as $c} {if $c->visible} <li> <a href="catalog/{$c->url}">{$c->name|escape}</a> </li> {/if} {/foreach} </ul> {/if} Quote Link to post Share on other sites
Kosjak76 Posted October 18, 2018 Report Share Posted October 18, 2018 Дайте код, который у вас есть сейчас (который выводит все категории Бренда)А условие будет примерно такое: {if in_array($c->id,$category->children)} ... {/if} В цикле вывода категорий бренда - выводим только те категории, которые есть в $category->children Quote Link to post Share on other sites
Enhill Posted October 18, 2018 Author Report Share Posted October 18, 2018 Зря я создал новую тему. Надо было поднять старую, тогда бы и контекст был понятен. Вывод категорий бренда: {if $brand} {foreach $brand_cat as $bc} <a href="catalog/{$bc->url}/{$brand->url}">{$bc->name}</a> {/foreach} {/if} Quote Link to post Share on other sites
Enhill Posted October 18, 2018 Author Report Share Posted October 18, 2018 Я не очень понятно задачу изложил. Имелся ввиду вывод категорий бренда из доработки: http://forum.simplacms.ru/topic/7909-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B8-%D0%B2-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B0%D0%BD%D0%B8%D0%B8-%D0%B8%D0%BB%D0%B8-%D0%BB%D0%BE%D0%B3%D0%B8%D0%BA%D0%B0-%D0%B7%D0%B0%D0%B4%D0%BE%D0%BC-%D0%BD%D0%B0%D0%BF%D0%B5%D1%80%D0%B5%D0%B4/ Дайте код, который у вас есть сейчас (который выводит все категории Бренда)А условие будет примерно такое: {if in_array($c->id,$category->children)} ... {/if} В цикле вывода категорий бренда - выводим только те категории, которые есть в $category->children Спасибо, то что нужно! Вот такой вывод почти идеален: {foreach $brand_cat as $bc} {if in_array($bc->id, $category->children)} <a href="catalog/{$bc->url}/{$brand->url}"> {$bc->name}</a> {/if} {/foreach} Quote Link to post Share on other sites
Enhill Posted October 18, 2018 Author Report Share Posted October 18, 2018 Осталось придумать, как скрыть категорию бренда, если мы туда уже зашли.- Фотоаппараты--- Ручные (присвоен бренд canon)--- Автозаводные (присвоен бренд canon)Если зайти в "Автозаводные" , все равно показывает ее в списке. Quote Link to post Share on other sites
Solution Kosjak76 Posted October 18, 2018 Solution Report Share Posted October 18, 2018 {if in_array($bc->id, $category->children) && $bc->id != $category->id} Примерно так Quote Link to post Share on other sites
Enhill Posted October 18, 2018 Author Report Share Posted October 18, 2018 {if in_array($bc->id, $category->children) && $bc->id != $category->id} Примерно так Спасибо большое. Дайте обниму. Quote Link to post Share on other sites
Kosjak76 Posted October 18, 2018 Report Share Posted October 18, 2018 Спасибо большое. Дайте обниму. Лучше деньгами)) Шутка Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.