Управление меню Управление меню Управление меню Управление меню Управление меню Управление меню
  • Управление меню
  • Управление меню
  • Управление меню
  • Управление меню
  • Управление меню
  • Управление меню

Лицензия на всю компанию для своего сервера или тарифов в облаке Webasyst, в которых это приложение не включено:

4.9

39 оценок

Ваш отзыв

8400+

установок

Welldi

разработчик

17 марта 2025

последний релиз
версия 2025.03.14

Поддержка
Лицензия
Дополнительные лицензии
50% скидка
Требования к серверу
  • Фреймворк, версия >=2.0
  • Версия PHP >=7.4

Несмотря на то, что приложение совместимо со старой версией PHP 7.4, рекомендуем использовать его на системах с PHP 8.0 для более быстрой и стабильной работы

С помощью приложения вы можете создать и настроить различные меню для фронтенда вашего сайта.

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

После создания структуры вы можете протестировать её в разделе "Информация".

Установка меню на сайт

Если ваша тема дизайна не поддерживает приложение по умолчанию, то вам потребуются базовые знания HTML-вёрстки, чтобы модифицировать шаблоны.

При помощи следующего кода можно получить массив элементов определённого меню. Обратите внимание, что $menu_id — это ID определённого меню.

, $user_id - это ID пользователя.

{$user_id = $wa->user("id")}
{$items = $wa->menu->get($menu_id,$user_id)}
или
{$items = $wa->menu->get($menu_id,$wa->user("id"))}

Следующий шаг — создать HTML структуру вашего меню. Самый простой способ это сделать — использовать функцию wa_print_tree, которая выведет вложенную структуру UL списков:

{wa_print_tree tree=$items elem='<a href=":url">:name</a>'}

Немного более продвинутый способ — использовать циклы Smarty, например foreach.

<nav class="menu">
{* цикл по элементам верхнего уровня *}
{foreach $items as $item}
<div class="menu-item">

    {* отрисовка ссылки *}
    <a href="{$item.url}">{$item.name}</a>

    {* у элемента могут быть вложенные элементы *}
    {if !empty($item.childs)}
    <div class="menu-item-childs">

        {* цикл по элементам второго уровня *}
        {foreach $item.childs as $child}
        <div class="menu-item-child">

            {* отрисовка ссылки *}
            <a href="{$item.url}">{$item.name}</a>

            {* далее могут быть ещё вложенные элементы: {$child.childs} и т.д. *}
        </div>
        {/foreach}
    </div>
    {/if}
</div>
{/foreach}
</nav>

Кэширование

В приложении используется кеш для снижения нагрузки на сервер. Вы можете изменить время жизни кеша на странице настроек.

По умолчанию используется файловый кеш. Но следуя этому руководству вы можете изменить настройки кэша вашего Webasyst:
https://developers.webasyst.ru/features/cache/

Параметр "Цель"

Для каждого пункта меню вы можете указать цель - к примеру, открывать на новой вкладке. Обратите внимение, для того чтобы это работало, нужна интеграция с темой дизайна. Если ваш шаблон не поддерживает этот пункт, вам нужно самостоятельно при выводе ссылки добавить код вида:

{if $link.target}target="{$link.target}"{/if}

Пример:

{if count($pages)}
    {foreach $pages as $p}
        <div class="footer-menu__item">
            <a class="footer-menu__link" href="{$p.url}" {if $p.target}target="{$p.target}"{/if}>{$p.name}</a>
        </div>
    {/foreach}
{/if}

Хотите быть в курсе новостей от Webasyst и Shop-Script, обсудить новый функционал, обменяться опытом с коллегами? Задать вопрос Независимым Разработчикам или найти Исполнителя на проект? Вступайте и пиши в крупнейшее независимое сообщество "Webasyst для всех": Телеграм чат (https://t.me/webasyst_for_all)

Все продукты этого разработчика