Как сделать вывод по id категории?

Помогите пожалуйста, как сделать, что бы подкатегории выводились по id родительской категории?

Буду очень благодарен!!!

<ul>
{foreach from=$wa->shop->categories(0, null, true) item=cat name=leftmenu}
    {$sub2 = $wa->shop->categories($cat.id,null,true)}
    <li><a href="#" class="btn-menu-1">Системы<br><span>кондиционирования</span></a>
    {if count($sub2)>0}
        <ul class="cat-sub2">
            {foreach from=$sub2 item=cat2 name=subleftmenu}
                {$sub3 = $wa->shop->categories($cat2.id, null, false, false)}
                <li>
                    <a href="{$cat2.url}">{$cat2.name}</a>
                    {if count($sub3)>0}
                        <ul class="cat-sub3">
                            {foreach from=$sub3 item=cat3 name=subleftmenu}
                            <li>
                                <a href="{$cat3.url}">{$cat3.name}</a>
                            </li>
                            {/foreach}
                        </ul>
                    {/if}
                </li>
            {/foreach}
        </ul>
    {/if}
    </li>
{/foreach}


{foreach from=$wa->shop->categories(0, null, true) item=cat name=leftmenu}
    {$sub2 = $wa->shop->categories($cat.id,null,true)}
    <li><a href="#" class="btn-menu-1">Системы<br><span>вентиляции</span></a>
    {if count($sub2)>0}
        <ul class="cat-sub2">
            {foreach from=$sub2 item=cat2 name=subleftmenu}
                {$sub3 = $wa->shop->categories($cat2.id, null, false, false)}
                <li>
                    <a href="{$cat2.url}">{$cat2.name}</a>
                    {if count($sub3)>0}
                        <ul class="cat-sub3">
                            {foreach from=$sub3 item=cat3 name=subleftmenu}
                                <li>
                                <a href="{$cat3.url}">{$cat3.name}</a>
                                </li>
                            {/foreach}
                        </ul>
                    {/if}
                </li>
            {/foreach}
        </ul>
    {/if}
    </li>
{/foreach}
</ul>

5 ответов

  • 1
    Алексей Webasyst 17 июля 2015 09:29 #

    Уточните что именно вы хотите сделать.

    Если стоит задача получить конкретную категорию с её подкатегориями, можете использовать код $wa->shop->category(100500, null, true) где 100500 идентификатор определенной категории.

    • +1
      Дмитрий Юрьевич Дмитрий Юрьевич 22 июля 2015 03:58 #

      Здравствуйте Алексей. Спасибо ваш метод работает, если я вывожу так

      {$categories = $wa->shop->categories(626, null, true)}

      {foreach $categories as $categori}

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

      {foreach from=$wa->shop->categories(0, null, true) item=cat name=leftmenu}

      на

      {foreach from=$wa->shop->categories(626, null, true) item=cat name=leftmenu}, то ничего не получается



      • +1
        Алексей Алексей Webasyst 22 июля 2015 09:00 #

        У вас немного не оптимизирован код. Не стоит запрашивать повторно информацию о категориях через $wa->shop->categories если данные о подкатегориях у вас уже есть в значении childs.

        Попробуйте вот этот:

        {foreach from=$wa->shop->categories(100500, null, true) item=cat name=leftmenu}

        {$sub2 = $cat.childs}

        <li><a href="#" class="btn-menu-1">Системы<br><span>кондиционирования</span></a>

        {if count($sub2)>0}

        <ul class="cat-sub2">

        {foreach from=$sub2 item=cat2 name=subleftmenu}

        {$sub3 = $cat2.childs}

        <li>

        <a href="{$cat2.url}">{$cat2.name}</a>

        {if count($sub3)>0}

        <ul class="cat-sub3">

        {foreach from=$sub3 item=cat3 name=subleftmenu}

        <li>

        <a href="{$cat3.url}">{$cat3.name}</a>

        </li>

        {/foreach}

        </ul>

        {/if}

        </li>

        {/foreach}

        </ul>

        {/if}

        </li>

        {/foreach}

        Еще несколько сомнительно использование жесткой ссылки на первую категорию и наверно удобнее будет брать её имя или данные из доп.параметров.

        • +1
          Дмитрий Юрьевич Дмитрий Юрьевич 26 июля 2015 07:32 #

          Алексей Владимирович, большое вам спасибо код оптимизировал по вашей подсказке все ок, но если вывожу так {foreach from=$wa->shop->categories(100500, null, true) item=cat name=leftmenu}, то показывает только подкатегории.

          А можно ли задать стиль только второму элементу категории? То есть пусть выводятся все, но для второго пункта свои стили.

          Спасибо.

  • 1
    Роман Петунин 26 июля 2015 11:48 #

    Такая же вещь.. Показывает только подкатегории.

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

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