xipro Опубликовано 12 октября, 2013 Жалоба Поделиться Опубликовано 12 октября, 2013 При просмотре товаров в одной конкретной категории хочу чтобы над фильтрами выводились подкатегории. Функция вывода категорий есть: {* Рекурсивная функция вывода дерева категорий *} {function name=categories_tree} {if $categories} <ul class="closed"> {foreach $categories as $c} {* Показываем только видимые категории *} {if $c->visible} <li> {if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name}">{/if} <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name}</a> </li> {/if} {/foreach} </ul> {/if} {/function} {categories_tree categories=$categories} А вот допереть как выводить только подкатегории конкретной категории не могу... Цитата Ссылка на сообщение Поделиться на другие сайты
chocolate_moles Опубликовано 12 октября, 2013 Жалоба Поделиться Опубликовано 12 октября, 2013 Обернуть вывод в {if $category->name == "Название категории"} ... {/if} Цитата Ссылка на сообщение Поделиться на другие сайты
xipro Опубликовано 12 октября, 2013 Автор Жалоба Поделиться Опубликовано 12 октября, 2013 {if $category->id==555} {foreach $category->subcategories as $c} <a href="catalog/{$c->url}">{$c->name}</a> {/foreach} {/if} Спасибо, работает Цитата Ссылка на сообщение Поделиться на другие сайты
xipro Опубликовано 25 февраля, 2014 Автор Жалоба Поделиться Опубликовано 25 февраля, 2014 Появился еще вопрос: На данный момент реализовал таким образом {if $page->url=='products'} {function name=categories_tree} <div id="catalog_menu"> <h1>Каталог</h1> <ul class="closed"> {foreach $categories as $c} {if $c->visible} <li> <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name}</a> </li> {/if} {/foreach} </ul> </div> {/function} {categories_tree categories=$categories} {else} {if $category->subcategories} <div id="catalog_menu"> <div id="subcat"> <ul> {foreach $category->subcategories as $c} <li> <a href="catalog/{$c->url}">{$c->name} </a> ({$c->products_count}) </li> {/foreach} </ul> </div> </div> {else} {/if} {/if} Заходишь в продукцию - показывает каталог, заходишь в категорию - показывает подкатегории. Но вот теперь задача - когда заходишь в подкатегорию надо чтобы оставалась менюшка подкатегорий. Кто знает как реализовать? Цитата Ссылка на сообщение Поделиться на другие сайты
xipro Опубликовано 3 марта, 2014 Автор Жалоба Поделиться Опубликовано 3 марта, 2014 Никто не знает как решить? Цитата Ссылка на сообщение Поделиться на другие сайты
cernos Опубликовано 13 марта, 2014 Жалоба Поделиться Опубликовано 13 марта, 2014 Чуть позже помогу, тоже реализовывать это буду. Но скорее всего придется ковырять исходники. Цитата Ссылка на сообщение Поделиться на другие сайты
Gragory Опубликовано 11 мая, 2014 Жалоба Поделиться Опубликовано 11 мая, 2014 xipro:Опубликовано 25.02.2014 - 12:24Но вот теперь задача - когда заходишь в подкатегорию надо чтобы оставалась менюшка подкатегорий. Кто знает как реализовать? cernos:Опубликовано 14.03.2014 - 01:21Чуть позже помогу, тоже реализовывать это буду. Но скорее всего придется ковырять исходники. Удалось найти решение данного вопроса? Кто может подсказать или показать решение?! Цитата Ссылка на сообщение Поделиться на другие сайты
Решение Kosjak76 Опубликовано 11 мая, 2014 Решение Жалоба Поделиться Опубликовано 11 мая, 2014 Блин, да сколько можно-то??Каждую неделю выкладывать? {foreach $categories as $c} {if in_array($category->id, $c->children) && $c->subcategories} {$c->name|escape} {foreach $c->subcategories as $cat} id == $cat->id}class="active"{/if} href="catalog/{$cat->url}" data-category="{$cat->id}">{$cat->name|escape} {/foreach} {/if} {/foreach}Вот рабочий вариант из шаблона, который в работе. Цитата Ссылка на сообщение Поделиться на другие сайты
Gragory Опубликовано 11 мая, 2014 Жалоба Поделиться Опубликовано 11 мая, 2014 Kosjak76, спасибо за решение! Цитата Ссылка на сообщение Поделиться на другие сайты
antidemon29 Опубликовано 8 сентября, 2014 Жалоба Поделиться Опубликовано 8 сентября, 2014 Блин, да сколько можно-то??Каждую неделю выкладывать? {foreach $categories as $c} {if in_array($category->id, $c->children) && $c->subcategories} <div class="col-md-12 col-xs-6"> <div class="products-dropdown open-dropdown"> <span><i class="icon-515" title="515"></i>{$c->name|escape}</span> <ul> {foreach $c->subcategories as $cat} <li><a {if $category->id == $cat->id}class="active"{/if} href="catalog/{$cat->url}" data-category="{$cat->id}">{$cat->name|escape}</a></li> {/foreach} </ul> </div> <div class="clear"></div> </div> {/if} {/foreach}Вот рабочий вариант из шаблона, который в работе.А можно так же только для трехуровневого меню??? Цитата Ссылка на сообщение Поделиться на другие сайты
antidemon29 Опубликовано 8 сентября, 2014 Жалоба Поделиться Опубликовано 8 сентября, 2014 {foreach $categories as $c} {if in_array($category->id, $c->children) && $c->subcategories} <ul> {foreach $c->subcategories as $cat} {if !$cat->subcategories} <li><a {if $category->id == $cat->id}class="active"{/if} href="catalog/{$cat->url}" data-category="{$cat->id}"><span>{$cat->name|escape}</span></a></li> {/if} {if in_array($category->id, $cat->children) && $cat->subcategories} {foreach $cat->subcategories as $g} <li><a {if $category->id == $g->id}class="active"{/if} href="catalog/{$g->url}" data-category="{$g->id}"><span>{$g->name|escape}</span></a></li> {/foreach} {/if} {/foreach} </ul> {/if} {/foreach} на 3 уровня сделал так если кому то надо Цитата Ссылка на сообщение Поделиться на другие сайты
dimalepel Опубликовано 11 декабря, 2014 Жалоба Поделиться Опубликовано 11 декабря, 2014 А как добавить еще и вывод изображений для подкатегорий? Цитата Ссылка на сообщение Поделиться на другие сайты
Grosso2020 Опубликовано 5 января, 2015 Жалоба Поделиться Опубликовано 5 января, 2015 А зачем вам реально подкатегории? Если у вас как минимум два меню на борту?! Я в теме более 8 лет и скажу, что это только минус вашему юзабилити сайта. Ибо человеку-юзеру это нахер не надо. Делайте СДЛ, не извращайтесь. Цитата Ссылка на сообщение Поделиться на другие сайты
kosix Опубликовано 20 января, 2015 Жалоба Поделиться Опубликовано 20 января, 2015 У меня есть задача в любом нужном месте вывести подкатегории определенной категории, как в таком случае быть? За ранее благодарен. Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 20 января, 2015 Жалоба Поделиться Опубликовано 20 января, 2015 Нужно тогда выводить по АйДи категории Цитата Ссылка на сообщение Поделиться на другие сайты
kosix Опубликовано 20 января, 2015 Жалоба Поделиться Опубликовано 20 января, 2015 Нужно тогда выводить по АйДи категории Не совсем понимаю как это корректно сделать.Логику понимаю, что я выбриаю айди категории и если там есть активные подкатегории то вывести их. Только бы языком симплы Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 20 января, 2015 Жалоба Поделиться Опубликовано 20 января, 2015 http://forum.simplacms.ru/topic/9019-%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4-%D0%BF%D0%BE%D0%B4%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B9/?do=findComment&comment=67370Посмотрите, думаю можно немного допилить под ваши нужды Цитата Ссылка на сообщение Поделиться на другие сайты
Suprun4uk Опубликовано 5 декабря, 2015 Жалоба Поделиться Опубликовано 5 декабря, 2015 Здравствуйте подскажите какое решение будет для Вывода подкатегорий с подкатегориями третьего уровня ? Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 5 декабря, 2015 Жалоба Поделиться Опубликовано 5 декабря, 2015 Здравствуйте подскажите какое решение будет для Вывода подкатегорий с подкатегориями третьего уровня ? поконкретнее где именно? если просто в категории, то так {function name=categories_sub} {if $categories} <ul> {foreach $categories as $c} {if $c->visible} <li> {if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name|escape}">{/if} <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a> {categories_sub categories=$c->subcategories} </li> {/if} {/foreach} </ul> {/if} {/function} {categories_sub categories=$category->subcategories} если нужно чтобы в подкатегориях и во всех уровнях вложенности выводились все подкатегории и категории главной родительской то так {$first_category = $category->path|first} {function name=categories_sub} {if $categories} <ul> {foreach $categories as $c} {if $c->visible} <li> {if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name|escape}">{/if} <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a> {categories_sub categories=$c->subcategories} </li> {/if} {/foreach} </ul> {/if} {/function} {categories_sub categories=$first_category->subcategories} Цитата Ссылка на сообщение Поделиться на другие сайты
Suprun4uk Опубликовано 5 декабря, 2015 Жалоба Поделиться Опубликовано 5 декабря, 2015 поконкретнее где именно? если просто в категории, то так {function name=categories_sub} {if $categories} <ul> {foreach $categories as $c} {if $c->visible} <li> {if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name|escape}">{/if} <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a> {categories_sub categories=$c->subcategories} </li> {/if} {/foreach} </ul> {/if} {/function} {categories_sub categories=$category->subcategories} если нужно чтобы в подкатегориях и во всех уровнях вложенности выводились все подкатегории и категории главной родительской то так {$first_category = $category->path|first} {function name=categories_sub} {if $categories} <ul> {foreach $categories as $c} {if $c->visible} <li> {if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name|escape}">{/if} <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a> {categories_sub categories=$c->subcategories} </li> {/if} {/foreach} </ul> {/if} {/function} {categories_sub categories=$first_category->subcategories} Спасибо огромное !!! это оно ! Цитата Ссылка на сообщение Поделиться на другие сайты
Suprun4uk Опубликовано 5 декабря, 2015 Жалоба Поделиться Опубликовано 5 декабря, 2015 mishanya Подскажите пожалуйста, по моей задумке выходит так: {if $category->subcategories} <!-- ТУТ Подкатегории --> {$first_category = $category->path|first} {function name=categories_sub} {if $categories} <ul> {foreach $categories as $c} {if $c->visible} <li> {if $c->image}{/if} <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a> {if $c->subcategories} <!-- ТУТ Подкатегории 3-тьего уровня --> {categories_sub categories=$c->subcategories} {else} <!-- ТУТ описание категории --> {$c->description|truncate:155:'...'} {/if} </li> {/if} {/foreach} </ul> {/if} {/function} {categories_sub categories=$first_category->subcategories} {else} <!-- ТУТ ТОВАРЫ --> {/if} но при нажатии на родителя второго уровня которые включают в себя третий уровень, выходит не ( ТОВАРЫ ) а всё те же категории второго уровня, а при клике на категории второго уровня которые не включают в себя подкатегории третьего уровня отображаются ( Товары ) почему так выходит не подскажите ? Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 5 декабря, 2015 Жалоба Поделиться Опубликовано 5 декабря, 2015 (изменено) mishanya Подскажите пожалуйста, по моей задумке выходит так: но при нажатии на родителя второго уровня которые включают в себя третий уровень, выходит не ( ТОВАРЫ ) а всё те же категории второго уровня, а при клике на категории второго уровня которые не включают в себя подкатегории третьего уровня отображаются ( Товары ) почему так выходит не подскажите ? потому что вы задали условие - если есть подкатегории у категории выводить не товары а подкатегории/субкатегории главной родительской категории. объясните что вам нужно точнее? Изменено 5 декабря, 2015 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
Suprun4uk Опубликовано 5 декабря, 2015 Жалоба Поделиться Опубликовано 5 декабря, 2015 можно ли сделать так что бы второй уровень не тянул условия первого уровня ? находясь на главной странице я выпираю категорию (бытовая техника) переходя в неё у меня отображаются блоками на странице подкатегории второго уровня , у подкатегорий второго уровня у которых имеется подкатегории третьего уровня они отображаются, если же их нет отображается описание, ( все работает ) но при нажатии на подкатегорию у которых есть подкатегория третьего уровня я попадаю на ту же страницу с подкатегориями второго уровня. а по идеи должны отображаться товары. Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 5 декабря, 2015 Жалоба Поделиться Опубликовано 5 декабря, 2015 можно ли сделать так что бы второй уровень не тянул условия первого уровня ? находясь на главной странице я выпираю категорию (бытовая техника) переходя в неё у меня отображаются блоками на странице подкатегории второго уровня , у подкатегорий второго уровня у которых имеется подкатегории третьего уровня они отображаются, если же их нет отображается описание, ( все работает ) но при нажатии на подкатегорию у которых есть подкатегория третьего уровня я попадаю на ту же страницу с подкатегориями второго уровня. а по идеи должны отображаться товары. по вашему коду - нет, т.к. у вас условие проверяет есть ли подкатегории у категории, если есть то выводит только эти подкатегории. чтобы не выводило все категории начиная с подкатегорий родителя, используйте первый код мой, это раз, во-вторых, вы не предусмотрели что у вас в категории могут быть и товары и подкатегории. лучше вообще убрать условие {if $category->subcategories} {/if} тогда если в категории будут товары и подкатегории будет выводить и то и то, если нет, только что-то одно Цитата Ссылка на сообщение Поделиться на другие сайты
Suprun4uk Опубликовано 5 декабря, 2015 Жалоба Поделиться Опубликовано 5 декабря, 2015 категория второго уровня выводит настройки первого уровня а не товары ( происходит это при условии что она включает в себя подкатегорию третьего уровня) если нет подкатегории третьего уровня то выводятся товары ! Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.