Gregar Опубликовано 13 сентября, 2014 Жалоба Поделиться Опубликовано 13 сентября, 2014 Всем привет, Как сделать так чтобы можно было вывести в категориях (родителях) -> категории 2-го уровня (подкатегории).Нужно чтобы подкатегории выводились всегда и при переходе в подкатегорию они не исчезали? Я пробовал воспользоваться вот эти кодом:------------------------------------------------------------- {if $category->subcategories} {$category->name} <ul> {foreach $category->subcategories as $c} {if $c->visible} <li><a href="catalog/{$c->url}" data-category="{$c->id}">{$c->name}</a></li> {/if} {/foreach} </ul> {/if} Недостатком этого кода является то, что он показывает подкатегории только при переходе в категорию 1-го уровня (родительскую), но стоит нам перейти в категория --> подкатегория и подкатегории исчезают. Так вот мне нужно так чтобы подкатегории показывались всегда не зависимо в родительской категории я нахожусь или нет. В идеале хотелось бы иметь вот такой вид кода:--------------------------------------------------------------------- {* Рекурсивная функция вывода дерева категорий *} {function name=categories_tree} {if $categories} <ul> {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|escape}</a> <!-- Выводим подкатегории 2-го уровня --> {* Выводим подкатегории только в нужных категориях *} {if $category->id == 6 || $category->id == 8} <!-- можно было бы и так оставить, но мне нужны другие стили и код поэтому спрашиваю у вас --> {categories_tree categories=$c->subcategories} {/if} <!-- Выводим подкатегории 2-го уровня (The End)--> </li> {/if} {/foreach} </ul> {/if} {/function} {categories_tree categories=$categories} Прошу отвечать по существу и хоть чем-то помочь мне. За ранее спасибо... Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 13 сентября, 2014 Жалоба Поделиться Опубликовано 13 сентября, 2014 {foreach $categories as $c1} {if $c1->visible && ($c1->id==$category->id || $c1->id==$category->parent_id)} {foreach $c1->subcategories as $c2} {if $c2->visible} <a href="catalog/{$c2->url}" data-category="{$c->id}">{$c2->name}</a> {/if} {/foreach} {/if} {/foreach} Цитата Ссылка на сообщение Поделиться на другие сайты
Gregar Опубликовано 13 сентября, 2014 Автор Жалоба Поделиться Опубликовано 13 сентября, 2014 {foreach $categories as $c1} {if $c1->visible && ($c1->id==$category->id || $c1->id==$category->parent_id)} {foreach $c1->subcategories as $c2} {if $c2->visible} <a href="catalog/{$c2->url}" data-category="{$c->id}">{$c2->name}</a> {/if} {/foreach} {/if} {/foreach} Все ГУД, спс. По аналогии пытался вывести подкатегории 3-го уровня, но почему то не хочет выводить их. Цитата Ссылка на сообщение Поделиться на другие сайты
Gregar Опубликовано 6 ноября, 2014 Автор Жалоба Поделиться Опубликовано 6 ноября, 2014 {foreach $categories as $c1} {if $c1->visible && ($c1->id==$category->id || $c1->id==$category->parent_id)} {foreach $c1->subcategories as $c2} {if $c2->visible} <a href="catalog/{$c2->url}" data-category="{$c->id}">{$c2->name}</a> {/if} {/foreach} {/if} {/foreach} Как аналогичным способом вывести подкатегории 3-го уровня??? Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 6 ноября, 2014 Жалоба Поделиться Опубликовано 6 ноября, 2014 Используйте этот код. http://forum.simplacms.ru/topic/8420-как-вывести-категории-в-меню-только-по-2-ой-уровен/#entry63178 Там есть переменная $level. В которой передается уровень категории.С помощью ее можете делать стили .catlevel_1 и тд. Ли бо с использованием проверок if выводить свои Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.