Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Всем привет,

 

Как сделать так чтобы можно было вывести в категориях (родителях) -> категории 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}

 

 

Прошу отвечать по существу и хоть чем-то помочь мне. 

За ранее спасибо...

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты

 

{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-го уровня, но почему то не хочет выводить их. 

 

Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...

 

{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-го уровня???

Ссылка на сообщение
Поделиться на другие сайты

Используйте этот код. 

http://forum.simplacms.ru/topic/8420-как-вывести-категории-в-меню-только-по-2-ой-уровен/#entry63178

 

Там есть переменная $level. В которой передается уровень категории.

С помощью ее можете делать стили .catlevel_1 и тд. Ли бо с использованием проверок if выводить свои

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...