Kami Опубликовано 29 декабря, 2018 Жалоба Поделиться Опубликовано 29 декабря, 2018 Друзья. возникла необходимость вывести мега меню в виде табов , где вкладка таба это корневая категория, а содержимое таба это ее дочерние категории. Верстаю на бустрапе, код примерно такой. Это вывод категорий 1 уровня во вкладки табов {function name=categories_tree} {if $categories} <ul class="nav nav-tabs" role="tablist"> {foreach $categories as $c} {if $c->visible} <li> <a href="catalog/{$c->url}" role="tab" data-toggle="tab">{$c->name|escape}</a> </li> {/if} {/foreach} </ul> {/if} {/function} {categories_tree categories=$categories} Это сами табы <div class="tab-content"> <div class="tab-pane active" id="id-1">1 подкатегория</div> <div class="tab-pane" id="id-2">2 подкатегория</div> <div class="tab-pane" id="id-3">3 подкатегория</div> </div> Вопрос как вывести категории 2 уровня. Пока мысли такие что ( id) связующие вкладки и содержимое задать переменную и в цикле делать +1. а вот как грамотно вывести отдельно категории 2 уровня чтоб они формировались в блоке div class="tab-pane" id="id-1"> </div> Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 29 декабря, 2018 Жалоба Поделиться Опубликовано 29 декабря, 2018 Хоть ты меня и бесишь я всё же помогу.Вот изучай: {if $categories} <ul class="nav nav-tabs" role="tablist"> {foreach $categories as $c} {if $c->visible} <li> <a href="catalog/{$c->url}" role="tab" data-toggle="tab">{$c->name|escape}</a> </li> {/if} {/foreach} </ul> <div class="tab-content"> {foreach categories as $cat} {if $cat->visible && $cat->subcategories} <div class="tab-pane active">{$cat->subcategories|print_r}</div> {/if} {/foreach} </div> {/if} Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 29 декабря, 2018 Автор Жалоба Поделиться Опубликовано 29 декабря, 2018 Хоть ты меня и бесишь я всё же помогу.Вот изучай: {if $categories} <ul class="nav nav-tabs" role="tablist"> {foreach $categories as $c} {if $c->visible} <li> <a href="catalog/{$c->url}" role="tab" data-toggle="tab">{$c->name|escape}</a> </li> {/if} {/foreach} </ul> <div class="tab-content"> {foreach categories as $cat} {if $cat->visible && $cat->subcategories} <div class="tab-pane active">{$cat->subcategories|print_r}</div> {/if} {/foreach} </div> {/if} К сожалению данная конструкция не выводит категории 2 уровня. http://demo.simplacms.ru/ Вот пример на демо сделал. Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 29 декабря, 2018 Жалоба Поделиться Опубликовано 29 декабря, 2018 На форуме много обсуждений подобных задач с простыми хорошими решениями, напримерhttp://forum.simplacms.ru/topic/8623-%D0%BD%D0%B5%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D1%8B%D0%B5-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B8-2-%D0%B3%D0%BE-%D0%B8-3-%D0%B3%D0%BE-%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D1%8F/А в конструкции мз #2 автор применил нестандартный прием {$cat->subcategories|print_r}. Вряд ли он его пробовал в действии, иначе бы не советовал. Впрочем, возможно, у него была цель усложнить Вам разбор примера... Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 29 декабря, 2018 Жалоба Поделиться Опубликовано 29 декабря, 2018 На форуме много обсуждений подобных задач с простыми хорошими решениями, напримерhttp://forum.simplacms.ru/topic/8623-%D0%BD%D0%B5%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D1%8B%D0%B5-%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B8-2-%D0%B3%D0%BE-%D0%B8-3-%D0%B3%D0%BE-%D1%83%D1%80%D0%BE%D0%B2%D0%BD%D1%8F/ А в конструкции мз #2 автор применил нестандартный прием {$cat->subcategories|print_r}. Вряд ли он его пробовал в действии, иначе бы не советовал. Впрочем, возможно, у него была цель усложнить Вам разбор примера...Да, я специально распечатал результат. Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 29 декабря, 2018 Жалоба Поделиться Опубликовано 29 декабря, 2018 Да, я специально распечатал результат. Вы распечатываете результат через {$cat->subcategories|print_r} ? И в профиле у Вас стоит "Программирование" ? И себя Вы именуете "Великим" ? И свои скилы Вы представляете как "большие" ? Надо хотя бы простейшие проверки делать для своих глубоких идей... Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 29 декабря, 2018 Автор Жалоба Поделиться Опубликовано 29 декабря, 2018 Вы распечатываете результат через {$cat->subcategories|print_r} ? И в профиле у Вас стоит "Программирование" ? И себя Вы именуете "Великим" ? И свои скилы Вы представляете как "большие" ? Надо хотя бы простейшие проверки делать для своих глубоких идей... Решение что вы дали ссылку не выводит категории 2 уровня. Проверяю на демо симплы. Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 29 декабря, 2018 Автор Жалоба Поделиться Опубликовано 29 декабря, 2018 Вы распечатываете результат через {$cat->subcategories|print_r} ? И в профиле у Вас стоит "Программирование" ? И себя Вы именуете "Великим" ? И свои скилы Вы представляете как "большие" ? Надо хотя бы простейшие проверки делать для своих глубоких идей... {foreach categories as $cat} {if $cat->visible && $cat->subcategories} <div class="tab-pane active"> {foreach $cat->subcategories as $subcat} {$subcat->name|escape} {/foreach} </div> {/if} {/foreach} почему данная простая конструкция ничего не выводит? по сути вывожу фореч категорий, проверяю видима ли категория и есть ли у нее подкатегории. Далее если и то и то соблюдено, завожу еще один фореч и там собираю подкатегории данной категории. По факту имею пустой div Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 29 декабря, 2018 Жалоба Поделиться Опубликовано 29 декабря, 2018 Видимо, потому, что первую строку надо писать так:{foreach $categories as $cat} Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 29 декабря, 2018 Автор Жалоба Поделиться Опубликовано 29 декабря, 2018 Видимо, потому, что первую строку надо писать так:{foreach $categories as $cat} согласен, не заметил. Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.