Enhill Опубликовано 18 октября, 2018 Жалоба Поделиться Опубликовано 18 октября, 2018 (изменено) Добрый день. в симпле есть 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 не логично показывать категорию бренда "Пылесосы", так как мы выбрали бренд в категории "сотовые телефоны". Как можно вывести в бренде только категории деток? Изменено 18 октября, 2018 пользователем Enhill Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 18 октября, 2018 Жалоба Поделиться Опубликовано 18 октября, 2018 {if $category->subcategories} ... {/if} Цитата Ссылка на сообщение Поделиться на другие сайты
Enhill Опубликовано 18 октября, 2018 Автор Жалоба Поделиться Опубликовано 18 октября, 2018 {if $category->subcategories} ... {/if}Это условие "если есть детки у категории". Не сработает с таким вариантом событий: - Фотоаппараты--- Ручные (присвоен бренд canon)--- Автозаводные (присвоен бренд canon)- Пылесосы CANON (присвоен бренд canon) Если мы зайдем в бренд в фотоаппаратах: фотоаппараты/ручные/canonто получим вот такой список категорий:- Ручные- Автозаводные- Пылесосы CANON Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 18 октября, 2018 Жалоба Поделиться Опубликовано 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} Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 18 октября, 2018 Жалоба Поделиться Опубликовано 18 октября, 2018 Дайте код, который у вас есть сейчас (который выводит все категории Бренда)А условие будет примерно такое: {if in_array($c->id,$category->children)} ... {/if} В цикле вывода категорий бренда - выводим только те категории, которые есть в $category->children Цитата Ссылка на сообщение Поделиться на другие сайты
Enhill Опубликовано 18 октября, 2018 Автор Жалоба Поделиться Опубликовано 18 октября, 2018 Зря я создал новую тему. Надо было поднять старую, тогда бы и контекст был понятен. Вывод категорий бренда: {if $brand} {foreach $brand_cat as $bc} <a href="catalog/{$bc->url}/{$brand->url}">{$bc->name}</a> {/foreach} {/if} Цитата Ссылка на сообщение Поделиться на другие сайты
Enhill Опубликовано 18 октября, 2018 Автор Жалоба Поделиться Опубликовано 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} Цитата Ссылка на сообщение Поделиться на другие сайты
Enhill Опубликовано 18 октября, 2018 Автор Жалоба Поделиться Опубликовано 18 октября, 2018 Осталось придумать, как скрыть категорию бренда, если мы туда уже зашли.- Фотоаппараты--- Ручные (присвоен бренд canon)--- Автозаводные (присвоен бренд canon)Если зайти в "Автозаводные" , все равно показывает ее в списке. Цитата Ссылка на сообщение Поделиться на другие сайты
Решение Kosjak76 Опубликовано 18 октября, 2018 Решение Жалоба Поделиться Опубликовано 18 октября, 2018 {if in_array($bc->id, $category->children) && $bc->id != $category->id} Примерно так Цитата Ссылка на сообщение Поделиться на другие сайты
Enhill Опубликовано 18 октября, 2018 Автор Жалоба Поделиться Опубликовано 18 октября, 2018 {if in_array($bc->id, $category->children) && $bc->id != $category->id} Примерно так Спасибо большое. Дайте обниму. Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 18 октября, 2018 Жалоба Поделиться Опубликовано 18 октября, 2018 Спасибо большое. Дайте обниму. Лучше деньгами)) Шутка Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.