Меню 4 уровня

SLideR11

В общем из темы и проблема. Не могу сделать 4 уровень в меню, помогите, пожалуйста. Вот шаблон на три уровня:

<div class="main-nav">
    {$categories = $wa->shop->categories(0, 1, true)}
    <ul class="level">
        {foreach $categories as $tc_id => $top_category}
            <li class="parent {if $top_category.childs} exp {/if}">
                <span class="bullet"> </span><a href="{$top_category.url}">{$top_category.name|escape}</a>
                    {if $top_category.childs}
                        <ul class="lvl-2">
                            {foreach $top_category.childs as $child_category name=child_categories} {$sub3 = $wa->shop->categories($child_category.id, null, false, false)}
                                <li {if count($sub3)>0} class="exp" {/if}>
                                    <span class="bullet"> </span><a href="{$child_category.url}">{$child_category.name|escape}</a> 
                                    {if count($sub3)>0}
                                        <ul class="lvl-3 list-unstyled">
                                            {foreach from=$sub3 item=cat3 name=submenu}
                                                <li><span class="bullet"> </span><a href="{$cat3.url}">{$cat3.name}</a></li>
                                            {/foreach}
                                        </ul>
                                   {/if}
                                </li>
                            {/foreach}
                        </ul>
                    {/if}
                </li>
            {/foreach}
        </ul>
    </div>
3 апреля 2018


  •     <div class="main-nav">
            {$categories = $wa->shop->categories(0, 1, true)}
            <ul class="level">
                {foreach $categories as $tc_id => $top_category}
                    <li class="parent {if $top_category.childs} exp {/if}">
                        <span class="bullet"> </span><a href="{$top_category.url}">{$top_category.name|escape}</a>
                        {if $top_category.childs}
                            <ul class="lvl-2">
                                {foreach $top_category.childs as $child_category}
                                    <li {if count($child_category.childs)>0} class="exp" {/if}>
                                        <span class="bullet"> </span><a href="{$child_category.url}">{$child_category.name|escape}</a>
                                        {if count($child_category.childs)>0}
                                            <ul class="lvl-3 list-unstyled">
                                                {foreach $child_category.childs as $cat3}
                                                    <li {if count($cat3.childs)>0} class="exp" {/if}>
                                                        <span class="bullet"> </span><a href="{$cat3.url}">{$cat3.name}</a>
    
                                                        {if count($cat3.childs)>0}
                                                            <ul class="lvl-4 list-unstyled">
                                                                {foreach $cat3.childs as $cat4}
                                                                    <li>
                                                                        <span class="bullet"> </span><a href="{$cat4.url}">{$cat4.name}</a>
                                                                    </li>
                                                                {/foreach}
                                                            </ul>
                                                        {/if}
                                                    </li>
                                                {/foreach}
                                            </ul>
                                        {/if}
                                    </li>
                                {/foreach}
                            </ul>
                        {/if}
                    </li>
                {/foreach}
            </ul>
        </div>
  • SLideR11 3 апреля 2018 09:26

    Не работает, дальше второго не показывает

  • Аналогично можно и для 5-го написать. Но можно использовать

    https://developers.webasyst.ru/templates/smarty-plugins/#method-wa_print_tree

    как-то так

    <div class="main-nav">
    	{$categories = $wa->shop->categories(0, 1, true)}
    	{wa_print_tree tree=$categories elem='<span class="bullet"> </span> <a href=":url">:name</a>' class="level" collapsible_class="exp"}
    </div>

    И стилями дооформить.

  • SLideR11 3 апреля 2018 09:45

    Я натыкался на вывод этого дерева, оно тоже только два уровня показывает

  • SLideR11 3 апреля 2018 10:14

    Короче, понятно, извините что потревожил и потратил время, больше не беспокойтесь. Пойду поищу помощи в других местах.

    Что мне должен был сказать этот скрин??? Я что "Партнёр-разработчик"??? Я этот webasyst вижу второй раз в жизни и через три часа своих попыток написать 4 уровень, я решил что тут помогут. Но тут вместо помощи могут лишь закидывать непонятно чем.

  • Вам же дали четкий и точный ответ: https://developers.webasyst.ru/templates/smarty-pl...

    Работает и на 4 и на 5 и на 6 и даже, не поверите, на 7 уровнях и далее. Если у вас в каком-то конкретном случае что-то не работает, то делитесь подробностями. А искать то, не знаю что.... Ну в другом месте может и есть, но тут точно нет.


  • {$categories = $wa->shop->categories(0, 1, true)}

    Второй параметр.

  • SLideR11 3 апреля 2018 10:24

    Так я и делюсь подробностями.

    Дали код:

    <div class="main-nav">
            {$categories = $wa->shop->categories(0, 1, true)}
            {wa_print_tree tree=$categories elem='<span class="bullet"> </span> <a href=":url">:name</a>' class="level" collapsible_class="exp"}
    </div>

    Я сказал что он показывает только два уровня, после этого скинули скрин:

    Что мне должен был сказать этот скрин??? Код меню html, на скрине js, как мне это должно было помочь сделать "и на 4 и на 5 и на 6 и даже, не поверите, на 7 уровнях и далее"???
  • Вам просто надо указать глубину показа вложенности подкатегорий

    {$categories = $wa->shop->categories(0, 3, true)}
    {$categories = $wa->shop->categories(0, глубина показа подкатегорий, true)}


  • SLideR11 3 апреля 2018 10:55

    Я это сделал давно, речь то не об этом.

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

  • SLideR11 3 апреля 2018 10:58

    P.S.: Вы бы создателям форума предложили, чтобы тут была возможность ответа на сообщения, может тогда проще было бы понять какое сообщение к какому относится. Я к тому, что я давно понял, что надо было сделать, ещё после сообщения

    {$categories = $wa->shop->categories(0, 1, true)} Второй параметр.

    Моё последующие сообщение к нему никак не относятся, оно лишь ответ к тому, что было перед ним, ответ на сообщение Павла Трофимова

  • И что, у вас все равно даже после указание этого параметра не работает?

  •                 {if $pages = $wa->shop->categories(0, null, true, true)}
                        {function pages_tree}
                        {foreach $items as $item}
                        {if empty($item.hide)}
                        <li class="{if !empty($item.childs)}tree{/if}">
                            <a href="{$item.url}" title="{$item.name}">{$item.name}</a>
                            {if !empty($item.childs)}
                            <ul>
                                {pages_tree items=$item.childs}
                            </ul>
                            {/if}
                        </li>
                        {/if}
                        {/foreach}
                        {/function}
    					<ul class="menu">
                        {pages_tree items=$pages}
    					</ul>
                    {/if}


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