SmartyDev Опубликовано 7 октября, 2014 Жалоба Поделиться Опубликовано 7 октября, 2014 Сейчас стоит стандартное меню <!-- Меню каталога --> <div id="catalog_menu"> {* Рекурсивная функция вывода дерева категорий *} {function name=categories_tree} {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_tree categories=$c->subcategories} </li> {/if} {/foreach} </ul> {/if} {/function} {categories_tree categories=$categories} </div> <!-- Меню каталога (The End)--> У меня уровень воженности подкатегорий - 3. Мне нужно чтобы выводилось только главная категория и подкатегории. А уже под-под категории не выводились в нем. Но не могу никак подобрать код, помогите пожалуйста. Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 7 октября, 2014 Жалоба Поделиться Опубликовано 7 октября, 2014 в переменной {$level} - будет уровень вложености... Просто сделайте проверку {if $categories && $level < xxx} код вывода меню {/if} <!-- Меню каталога --> <div id="catalog_menu"> {* Рекурсивная функция вывода дерева категорий *} {function name=categories_tree} {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_tree categories=$c->subcategories level=$level+1} </li> {/if} {/foreach} </ul> {/if} {/function} {categories_tree categories=$categories level=0} </div> <!-- Меню каталога (The End)--> Цитата Ссылка на сообщение Поделиться на другие сайты
SmartyDev Опубликовано 7 октября, 2014 Автор Жалоба Поделиться Опубликовано 7 октября, 2014 Что-то не выходит Цитата Ссылка на сообщение Поделиться на другие сайты
Решение yr4ik Опубликовано 7 октября, 2014 Решение Жалоба Поделиться Опубликовано 7 октября, 2014 Вот уже готовый код: <!-- Меню каталога --> <div id="catalog_menu"> {* Рекурсивная функция вывода дерева категорий *} {function name=categories_tree} {if $categories && $level < 3} <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_tree categories=$c->subcategories level=$level+1} </li> {/if} {/foreach} </ul> {/if} {/function} {categories_tree categories=$categories level=0} </div> <!-- Меню каталога (The End)--> Цитата Ссылка на сообщение Поделиться на другие сайты
SmartyDev Опубликовано 7 октября, 2014 Автор Жалоба Поделиться Опубликовано 7 октября, 2014 Вот уже готовый код: <!-- Меню каталога --> <div id="catalog_menu"> {* Рекурсивная функция вывода дерева категорий *} {function name=categories_tree} {if $categories && $level < 3} <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_tree categories=$c->subcategories level=$level+1} </li> {/if} {/foreach} </ul> {/if} {/function} {categories_tree categories=$categories level=0} </div> <!-- Меню каталога (The End)--> Спасибо Цитата Ссылка на сообщение Поделиться на другие сайты
makki Опубликовано 22 мая, 2017 Жалоба Поделиться Опубликовано 22 мая, 2017 Подскажите как в функцию categories_tree передать массив подкатегорий (subcategories) родителя выбранной категории? Хочу в боковом меню вывести только подкатегории выбранной категории, но для категорий без подкатегорий, показывать подкатегории родительской категории. {if $category->subcategories} {categories_tree categories=$category->subcategories} {else} {categories_tree categories=?????? } {/if} Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 22 мая, 2017 Жалоба Поделиться Опубликовано 22 мая, 2017 Подскажите как в функцию categories_tree передать массив подкатегорий (subcategories) родителя выбранной категории? Хочу в боковом меню вывести только подкатегории выбранной категории, но для категорий без подкатегорий, показывать подкатегории родительской категории. {if $category->subcategories} {categories_tree categories=$category->subcategories} {else} {categories_tree categories=?????? } {/if} {categories_tree categories=$category->path[count($category->path)-1]->subcategories} Цитата Ссылка на сообщение Поделиться на другие сайты
makki Опубликовано 22 мая, 2017 Жалоба Поделиться Опубликовано 22 мая, 2017 Спасибо большое, mishanya. Работает. Только тут count($category->path)-1 вместо -1, надо -2 Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.