Вывод подкатегорий только родителя

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

{if $category.subcategories}
            <ul class="sub-links">
                {foreach $category.subcategories as $sc}
                <li><a href="{$sc.url}">{$sc.name|escape}</a></li>
                {/foreach}
            </ul>
{/if}

Этот кусок делает примерно то что нужно, но выбрав одну из подкатегорий, меню с ними пропадает, т.к. судя по всему он ищет подкатегории у подкатегорий. А мне нужно чтобы показывались только подкатегории первого уровня выбранного родителя и не важно в какой из подкатегорий я сейчас нахожусь.

Простите если много тавтологии в сообщении, не смог более лаконично изложить вопрос.

4 ответа

  • 3

    Есть несколько вариантов:

    Поиск по дереву:

      {foreach $wa->shop->categories(0, 0) as $c}
        {if $c.left_key <= $category.left_key && $c.right_key >= $category.right_key && $c.depth == 0}
          {$root_category = $c}
          {break}
        {/if}
      {/foreach}

    или по "хлебным крошкам":

      {foreach $wa->shop->categories(0, 0) as $c}
        {if $breadcrumbs[0][url] == $c[url]}
          {$root_category = $c}
          {break}
        {/if}
      {/foreach}
    • +1
      Максим Григорьев Максим Григорьев 22 января 2016 10:22 #

      Прошу простить, но до меня всё равно не дойдет как вывести подкатегории из этой root_category. Я просто абсолютно не шарю в php и smarty, собственно делаю типовой шаблон по аналогии с Дефолтным, но вот всё же понадобилось одно отличие.

  • 1
    fLgiOqRg159 29 марта 2018 23:24 #

    Аналогичный вопрос... Неужели нет простого решения?

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите