Как вручную добавить подпункт в меню Битрикс

  • Блог
  • Как вручную добавить подпункт в меню Битрикс
image
image
image
Как вручную добавить подпункт в меню Битрикс

Как вручную добавить подпункт в меню Битрикс

В этой статье (заметке) речь пойдет о ручном добавлении подпунктов в меню Битрикс и позволит открыть глаза на формирование массива $aMenuLinks для тех, кто еще испытывает в этом трудности.

Основные настройки

Допустим у нас есть раздел с названием "Услуги", в этом разделе мы хотим создать два подраздела и сделать соответственно два подпункта. Для этого необходимо создать файл .тип_меню.menu.php, в нашем случае это будет файл .left.menu.php, в данном файле за формирование меню отвечает массив $aMenuLinks, вот массив для нашего примера:

$aMenuLinks = array(
    Array(
        "Создание сайтов",
        "/services/create-sites/",
        Array(),
        Array(),
        ""
    ),
    Array(
        "Виды услуг",
        "/services/optimization/",
        Array(),
        Array(),
        ""
    )
)

Добавление типов меню в административной интерфейсе и прочие стандартные моменты дублировать не имеет смысла, так как об этом подробно рассказывается в учебном курсе Битрикса.

И вот встает задача добавить в раздел "Создание сайтов" раздел "Создание Landing Page" и соответственно вывести этот подпункт у раздела родителя.

Структура массива $aMenuLinks с подпунктами

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

$aMenuLinks = array(
    // Родительский пункт меню
    Array(
        "Создание сайтов",
        "/services/create-sites/",
        Array("/services/create-sites/"),
        Array(
            "FROM_IBLOCK" => 1,
            // Пункт является родительским
            "IS_PARENT" => 1,
            // Уровень вложенности 1
            "DEPTH_LEVEL" => 1
        ),
        ""
    ),
    // Дочерний подпункт
    Array(
        "Создание Landing Page",
        "/services/create-sites/landing-page/",
        Array("/services/create-sites/landing-page/"),
        Array(
            "FROM_IBLOCK" => 1,
            // Пункт не является родительским
            "IS_PARENT" => 0,
            // Уровень вложенности 2
            "DEPTH_LEVEL" => 2
        ),
        ""
    ),
    Array(
        "Виды услуг",
        "/services/optimization/",
        Array(),
        Array(),
        ""
    )
)

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

Не забывайте выставить параметр уровня вложенности в настройках компонента.

Заказать звонок