Перейти к содержимому


Фото
- - - - -

Вывод мега меню с табами


  • Чтобы отвечать, сперва войдите на форум
9 ответов в теме

#1 Kami

Kami
  • Пользователь
  • 232 сообщений
  • Откуда:Россия

Опубликовано 29.12.2018 - 12:52

Друзья. возникла необходимость вывести мега меню в виде табов , где вкладка таба это корневая категория, а содержимое таба это ее дочерние категории.

 

Верстаю на бустрапе, код примерно такой.

 

Это вывод категорий 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>


#2 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 900 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 29.12.2018 - 13:25

Хоть ты меня и бесишь я всё же помогу.
Вот изучай:
{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}


#3 Kami

Kami
  • Пользователь
  • 232 сообщений
  • Откуда:Россия

Опубликовано 29.12.2018 - 14:17

Хоть ты меня и бесишь я всё же помогу.
Вот изучай:

{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/

 

Вот пример на демо сделал.



#4 phukortsin

phukortsin
  • Пользователь
  • 639 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 29.12.2018 - 15:02

На форуме много обсуждений подобных задач с простыми хорошими решениями, например
http://forum.simplac...-и-3-го-уровня/

А в конструкции мз #2 автор применил нестандартный прием {$cat->subcategories|print_r}. Вряд ли он его пробовал в действии, иначе бы не советовал. Впрочем, возможно, у него была цель усложнить Вам разбор примера...



#5 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 900 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 29.12.2018 - 16:19

На форуме много обсуждений подобных задач с простыми хорошими решениями, например
http://forum.simplac...-и-3-го-уровня/

А в конструкции мз #2 автор применил нестандартный прием {$cat->subcategories|print_r}. Вряд ли он его пробовал в действии, иначе бы не советовал. Впрочем, возможно, у него была цель усложнить Вам разбор примера...

Да, я специально распечатал результат.

#6 phukortsin

phukortsin
  • Пользователь
  • 639 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 29.12.2018 - 17:00

Да, я специально распечатал результат.

 

Вы распечатываете результат через  {$cat->subcategories|print_r} ? И в профиле у Вас стоит "Программирование" ? И себя Вы именуете "Великим" ? И свои скилы Вы представляете как "большие" ?

 

Надо хотя бы простейшие проверки делать для своих глубоких идей...
 



#7 Kami

Kami
  • Пользователь
  • 232 сообщений
  • Откуда:Россия

Опубликовано 29.12.2018 - 17:15

Вы распечатываете результат через  {$cat->subcategories|print_r} ? И в профиле у Вас стоит "Программирование" ? И себя Вы именуете "Великим" ? И свои скилы Вы представляете как "большие" ?

 

Надо хотя бы простейшие проверки делать для своих глубоких идей...
 

 

Решение что вы дали ссылку не выводит категории 2 уровня. Проверяю на демо симплы.



#8 Kami

Kami
  • Пользователь
  • 232 сообщений
  • Откуда:Россия

Опубликовано 29.12.2018 - 19:58

Вы распечатываете результат через  {$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



#9 phukortsin

phukortsin
  • Пользователь
  • 639 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 29.12.2018 - 20:26

Видимо, потому, что первую строку надо писать так:

{foreach $categories as $cat}



#10 Kami

Kami
  • Пользователь
  • 232 сообщений
  • Откуда:Россия

Опубликовано 29.12.2018 - 21:51

Видимо, потому, что первую строку надо писать так:

{foreach $categories as $cat}

 

согласен, не заметил.






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых