Создайте мегаменю с помощью Ultimenu и Bootstrap в Drupal 8

Опубликовано: 2022-02-16

Один из наших клиентов спросил, как создать мегаменю в Drupal 8.

Мегаменю — это меню с многоколоночной навигацией. Они быстро становятся тенденцией в веб-дизайне.

Модуль Ultimenu позволяет вставлять блоки Drupal в меню. Вы можете легко использовать его для создания довольно сложных макетов меню.

В этом уроке вы узнаете, как создать простое мегаменю с помощью модуля Ultimenu и Bootstrap.

Заказчик хотел создать мега-меню, подобное изображенному на изображении ниже:

01

Раскрывающиеся списки мегаменю должны иметь ширину 100%. Их содержимое должно быть блоками Drupal.


Подход Ультимену

Модуль Ultimenu создает блок для каждого меню, которое вы добавляете на странице меню вашей установки Drupal (admin/structure/menu).

Вы можете разместить этот блок на экране макета блока, как и любой другой блок. Модуль превращает пункты меню в динамические области на странице макета блока.

Таким образом, вы можете вставлять блоки (пользовательские блоки, представления и т. д.) в эти области.

Блок, содержащий регионы, содержащие блоки:

02


Шаг 1. Установите модуль

  • Установите модуль с композитором:

composer require drupal/ultimenu

  • После загрузки нажмите Продлить и включите модуль. Никаких дополнительных зависимостей не требуется:

03


Шаг 2. Создать меню

  • Щелкните Структура > Меню .
  • Найдите главную навигацию
  • Щелкните меню «Правка» .

04

  • Нажмите кнопку Добавить ссылку
  • Добавьте пункты меню первого уровня:

05

Ссылка Travel указывает на route:<nolink> . Этот родительский элемент предназначен только для того, чтобы содержать другие элементы:

06


Шаг 3. Настройте блок Ultimenu

  • Щелкните Структура > Ultimenu .
  • Tab выберите Основная навигация в вертикальных блоках Ultimenu.
  • Нажмите Сохранить конфигурацию :

07

  • Щелкните Регионы Ultimenu.
  • Выберите Ultimenu:main: Путешествия

Ultimenu создаст этот регион динамически на странице макета блока , чтобы вы могли размещать в нем блоки.

  • Нажмите Сохранить конфигурацию :

08

На вкладке «Полезности Ultimenu » есть дополнительные параметры конфигурации. Я не собираюсь проверять ни один из этих вариантов. Пожалуйста, прочитайте документацию модуля, чтобы понять, как работают эти опции, особенно если вы создаете многоязычный сайт.


Шаг №4. Блок изображения

Чтобы поместить изображение в блок, вам необходимо создать пользовательский тип блока с полем « Изображение ».

  • Щелкните Структура > Компоновка блоков > Библиотека пользовательских блоков > Типы блоков .
  • Нажмите кнопку Добавить пользовательский тип блока :

09

  • Дайте типу блока правильное имя.
  • Нажмите Сохранить:

10

  • Щелкните Управление полями.
  • Удалите поле Тело .
  • Щелкните Добавить поле.
  • Добавьте поле Изображение .
  • Сохраните его со значениями по умолчанию.
  • Щелкните Управление отображением.
  • Скрыть метку блока :

11

  • Нажмите «Структура» > «Макет блока» > «Библиотека пользовательских блоков» > «Добавить пользовательский блок» :

12

  • Нажмите «Блокировать с изображением» :

13

  • Загрузите изображение.
  • Нажмите Сохранить:

14


Шаг № 5. Блок ссылок

Есть много способов получить блок со ссылками в четыре столбца, например с помощью Views.

В этом уроке я работаю с подтемой Bootstrap. Я собираюсь использовать базовый блок с разметкой и классами Bootstrap.

Ознакомьтесь с этим руководством, чтобы узнать, как создать подтему Bootstrap в Drupal.

  • Нажмите Добавить пользовательский блок еще раз.
  • На этот раз выберите базовый блок .
  • Дайте блоку правильное имя.
  • Выберите Full HTML в качестве текстового формата в редакторе.
  • Нажмите кнопку Источник .
  • Вставьте следующий код в окно редактора:

 <div class="row"> <div class="col-sm-3"> <h3>Top destinations</h3> <ul> <li><a href="#">North America</a></li> <li><a href="#">Latin America</a></li> <li><a href="#">Middle East</a></li> <li><a href="#">Europe</a></li> <li><a href="#">Africa</a></li> </ul> </div> <div class="col-sm-3"> <h3>Editor's choice</h3> <ul> <li><a href="#">Best Hotel Deals</a></li> <li><a href="#">Cruise Deals</a></li> <li><a href="#">City Breaks</a></li> <li><a href="#">Activities</a></li> <li><a href="#">Culture</a></li> </ul> </div> <div class="col-sm-3"> <h3>City breaks</h3> <ul> <li><a href="#">Paris</a></li> <li><a href="#">Hong Kong</a></li> <li><a href="#">Rome</a></li> <li><a href="#">London</a></li> <li><a href="#">Tokyo</a></li> </ul> </div> <div class="col-sm-3"> <h3>Custom menu</h3> <ul> <li><a href="#">Disclaimer</a></li> <li><a href="#">Privacy</a></li> <li><a href="#">Advertisement</a></li> <li><a href="#">Contact us</a></li> </ul> </div> </div>

  • Щелкните Сохранить.

15


Шаг №6. Поместите блок Ultimenu

  • Щелкните Структура > Макет блока .
  • Отключите основной блок навигации по умолчанию.
  • Поместите Ultimenu: Основная навигация в область Навигация (складная).
  • Снимите флажок Отображать заголовок .
  • Нажмите Сохранить блок .

16


Шаг №7. Разместите блоки в области «Путешествие».

  • Прокрутите вниз до нижней части страницы.

Вы увидите динамически сгенерированный регион, который вы назначили при настройке Ultimenu.

  • Щелкните Разместить блок :

17

  • Поместите пользовательский блок изображения в эту область.
  • Снимите флажок Показать заголовок.
  • Нажмите Сохранить блок.
  • Повторите процесс с блоком разметки Bootstrap :

18

  • При необходимости измените порядок блоков.
  • Нажмите Сохранить блоки :

19

Теперь перейдите на главную страницу вашего сайта и взгляните на меню. Требуется пара настроек CSS.


Шаг №8. CSS

По умолчанию файл библиотек вашей подтемы указывает на файл style.css внутри папки css/ внутри вашей подтемы Bootstrap.

  • Добавьте в этот файл следующий код:

 /* Google fonts */ @import url('https://fonts.googleapis.com/css?family=Roboto:400,700'); /* Menu Links */ .ultimenu__link { text-transform: uppercase; font-family: 'Roboto', sans-serif; color: #000; font-size: 1.1em; display: inline-block; font-weight: 700; padding: 0.8em; } .has-ultimenu:hover { background-color: #FFF; } /* Image Block */ #block-megamenuimage { width: 100%; } #block-megamenuimage img { width: 100%; } /* Links block */ #block-multicolumnblock { width: 100%; } #block-multicolumnblock h3 { text-transform: uppercase; font-family: 'Roboto', sans-serif; background: #000; color: beige; font-size: 1em; display: inline-block; font-weight: 700; padding: 0.8em; border-radius: 10px; } #block-multicolumnblock li { list-style: none; border-top: 0.5px dashed #333; } #block-multicolumnblock li:last-child { border-bottom: 0.5px dashed #333; } #block-multicolumnblock li a { text-decoration: none; color: #333; display: block; line-height: 2.5em; }

К настоящему времени вы уже должны были заметить, как настроить меню самостоятельно:

20


Резюме

Вы только что узнали, как создавать мегаменю в Drupal, используя модуль Ultimenu, Bootstrap и простой для понимания подход «блок Drupal».

Спасибо за чтение!