Страница 1 из 1

Как работает menu.tpl, или небольшая проблема

Добавлено: 22.12.2019, 19:43
mr.glonin
Добрый вечер форумчане.

Долгое время любительски привязываю шаблоны к системе.
И возникла проблема как быть с разными class в параметрах li у каждого меню.

К примеру в шапке меню использует свой ul class и свой li class, в редких случаях a class
в футоре уже иначе идет, и menu.tpl позволяет везёт выводить только одно оформление.

Можно как то это решить, к примеру если я вызываю {$menu_footer} то через if выводить для него только свой class ul,li
Что то вроде {if $menu_footer}class=" footer"{/if} только для {$menu_footer}
Или возможно выводить вообще другой код для {$menu_footer}

Добавлено: 23.12.2019, 09:20
synsmaster
Вы можете в menu.tpl вывести свою структуру, делая проверку на ID меню, который задается в админке.
Например для {$menu_footer} :

Код: Выделить всё

{if $menu_items}
    {if $menu->group_id == "footer"} // footer - это id указанный для меню футер

        Ваш код для меню футера ....................

    {else}

        {function name=menu_items_tree}
        {if $menu_items}
        <ul class="fn_menu_list menu_group__list menu_group__list--{$level} menu_group--{$menu->group_id}">
            {foreach $menu_items as $item}
            {if $item->visible == 1}
            <li class="menu_group__item menu_group__item--{$level} {if $item->submenus && $item->count_children_visible>0}menu_eventer{/if}">
                <a class="menu_group__link" {if $item->url} href="{if preg_match('~^https?://~', {$item->url})}{$item->url}{else}{url_generator route='page' url=$item->url}{/if}"{/if} {if !$item->submenus && $item->is_target_blank}target="_blank"{/if}>
                    <span>{$item->name|escape}</span>
                </a>
                {menu_items_tree menu_items=$item->submenus level=$level + 1}
            </li>
            {/if}
            {/foreach}
        </ul>
        {/if}
        {/function}
        {menu_items_tree menu_items=$menu_items level=1}
    {/if}
{/if}

Добавлено: 29.07.2020, 17:40
akvk
Добрый вечер! Подскажите пожалуйста, каким условием вывести class"activ" для li? Нужно сделать ссылку активной при нахождение на этой странице.

Добавлено: 17.09.2020, 10:56
Александр116
У меню разные id чем у страницы, того как костыль сравнивать url страницы и url пункта меню
{if $page->url == $item->url} main-menu__item--active{/if}