Как использовать модуль дополнительных элементов меню для Drupal 8
Опубликовано: 2022-02-16Мегаменю больше не является тенденцией дизайна, а является неотъемлемой частью большинства веб-сайтов, связанных с новостями или электронной коммерцией.
Модуль Menu Item Extras для Drupal 8 улучшает систему меню по умолчанию в Drupal, позволяя конструктору сайта добавлять поля к пунктам меню. Таким образом, можно создать мегаменю за пару простых шагов.
Следуйте инструкциям, чтобы узнать, как использовать этот модуль. Давайте начнем!
Шаг № 1: Установите необходимые модули
В дополнение к модулю Menu Item Extras вам потребуется установить Viewfield. Поле просмотра предоставляет поле, которое содержит ссылку на представление и отображает его всякий раз, когда отображается сущность, содержащая поле.
- Откройте терминальное приложение вашего ПК.
- Тип :
- для композитора требуется drupal/viewfield
- композитор требует drupal/menu_item_extras
Включите оба модуля после загрузки.
- Щелкните Продлить.
- Проверьте оба модуля.
- Щелкните Установить.
Шаг № 2: Создайте систему таксономии
Возможно, слово «система» не очень подходит, так как мы создадим только один словарь с десятью связанными терминами. Однако этот пример объяснит основы, так что в будущем вы сможете работать с более сложными системами таксономии.
- Щелкните Структура > Таксономия > Добавить словарь.
- Введите название «Темы» и нажмите «Сохранить».
- Нажмите «Добавить термин» и добавьте все термины, описанные ниже, один за другим.
- Темы
- Д8
- Симфони
- ВП
- Мадженто
- CSS
- HTML
- JS
- PHP
- питон
- DevOps
- Темы
Шаг № 3: Создайте типы контента
Для целей этого урока мы будем использовать 2 типа контента со следующими полями:
- Услуги
- Изображение сервиса / Изображение / Допустимое количество значений: 1
- Вступительный текст / Текст (отформатированный) / Допустимое количество значений: 1
- Описание / Поле по умолчанию
- Блог
- Категория / Термин таксономии / Допустимое количество значений: неограниченно
- Описание / Поле по умолчанию
Убедитесь, что вы выбрали тип ссылки (темы) при создании поля таксономии.
Шаг № 4: Создайте контент
Мы собираемся создать 3 узла типа Service:
- Учебники
- Видео
- Книги
Каждый из этих узлов будет связан с элементом второго уровня в мегаменю. С другой стороны, мы собираемся создать около 10 узлов типа «Блог» с разными терминами, связанными с ними. Убедитесь, что вы используете 2 термина (например, D8, WP) с большей частотой, чем другие.
Экран содержимого должен выглядеть в конце этого процесса примерно так, как показано на изображении ниже.
Шаг № 5: Создайте пункты меню
Первый уровень главного меню будет иметь следующие пункты меню:
- Домой
- О
- Ресурсы
- Контакт
Каждый из пунктов меню будет иметь дополнительное (лишнее) поле. Это поле будет установлено на втором уровне меню, то есть на каждом из пунктов карты в мегаменю. Это поле позволит нам представить каждый из блоков просмотра.
- Щелкните Структура > Меню.
- Щелкните меню «Правка», чтобы отредактировать основную навигацию.
- Нажмите Добавить ссылку 3 раза, чтобы добавить отсутствующие пункты меню первого уровня.
- Нажимайте «Сохранить» каждый раз, когда вы вводите имя пункта меню.
Используйте специальный тег для отображения только текста ссылки.
После того, как вы создали и переставили ссылки вашего меню,
- Щелкните Управление полями > Добавить поле, чтобы добавить поле в пункты меню.
- Выберите поле типа Viewfield.
- Дайте ему правильное имя и ярлык.
- Нажмите Сохранить и продолжить.
- Установите для параметра Разрешенное количество значений значение Неограниченно.
- Нажмите Сохранить настройки поля.
У вас будет возможность связать представление по умолчанию с этим конкретным полем. Оставьте эти поля пустыми.
- Прокрутите вниз и нажмите Сохранить настройки
- Щелкните Управление отображением.
- Скрыть метку карты меню.
- Щелкните Сохранить.
Шаг № 6: Создайте представления
- Щелкните Структура > Представления > Добавить представление.
- Показать содержимое типа «Услуги».
- Создайте блок с неформатированным списком полей.
- Выберите отображение 3 элементов в блоке.
- Щелкните Сохранить и изменить.

- Добавьте поле изображения службы
- Установите стиль изображения на «Миниатюра» и свяжите изображение с содержимым.
- Нажмите Применить
- Добавьте также текстовое поле Intro.
- Переупорядочить поля.
- Щелкните Сохранить.
- Щелкните Структура > Представления > Добавить представление.
- Показать содержимое типа Блог.
- Создайте блок с неформатированным списком полей.
- Выберите отображение 1 элемента в блоке.
- Щелкните Сохранить и изменить.
- Добавьте поле Категория.
- Нажмите Добавить и настройте поля.
- Щелкните Параметры нескольких полей.
- Выберите Ненумерованный список.
- Установите количество отображаемых значений на 3.
- Нажмите Применить.
- Удалить критерий сортировки
- Нажмите Применить.
- Щелкните Сохранить, чтобы сохранить вид.
Шаг № 7: Добавьте блоки просмотра в пункты меню
- Щелкните Структура > Меню.
- Отредактируйте основную навигацию.
- Отредактируйте пункт меню Ресурсы.
- Добавьте 2 блока, которые вы создали на шаге №5.
- Щелкните Сохранить.
Шаг № 8: Стили CSS
Я не буду подробно объяснять этот код, поскольку он выходит за рамки данного руководства. Тем не менее, вы можете узнать больше о Drupal Views и CSS Grid в этой статье. Если вы хотите больше попрактиковаться с мегаменю, ознакомьтесь с этой статьей.
#block-bartik-main-menu a,
#block-bartik-main-menu li span {
background: transparent;
text-shadow: unset;
color: whitesmoke;
}
#block-bartik-main-menu .menu-level-0 {
display: grid;
grid-template-columns: repeat(4, 1fr);
}
#block-bartik-main-menu .field--name-field-menu-card .field__items {
display: flex;
}
#block-bartik-main-menu .menu-dropdown-0 {
position: absolute;
left: 0;
top: 166px;
width: 100%;
z-index: 10;
}
#block-bartik-main-menu a,
#block-bartik-main-menu li span {
background: transparent;
text-shadow: unset;
color: whitesmoke;
}
#block-bartik-main-menu .menu-item {
display: grid;
align-content: center;
justify-content: center;
}
#block-bartik-main-menu .menu-level-0 {
display: grid;
grid-template-columns: repeat(4, 1fr);
}
#block-bartik-main-menu .menu-dropdown-0 {
position: absolute;
left: 0;
width: 100%;
padding-top: 16px;
background-color: rgba(141,139,132, 0.9);
}
.view-tutorials .view-content {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
.view-tutorials .views-row {
display: grid;
justify-items: center;
}
.view-tutorials .views-row span > a {
font-size: 1.3rem
}
.view-tutorials .views-row .views-field-field-intro-text {
font-size: 1rem;
}
#block-bartik-main-menu a,
#block-bartik-main-menu li span {
background: transparent;
text-shadow: unset;
color: whitesmoke;
}
#block-bartik-main-menu .menu-level-0 {
display: grid;
grid-template-columns: repeat(4, 1fr);
}
#block-bartik-main-menu .field--name-field-menu-card .field__items {
display: flex;
}
#block-bartik-main-menu .menu-dropdown-0 {
position: absolute;
left: 0;
top: 166px;
width: 100%;
z-index: 10;
}
#block-bartik-main-menu a,
#block-bartik-main-menu li span {
background: transparent;
text-shadow: unset;
color: whitesmoke;
}
#block-bartik-main-menu .menu-item {
display: grid;
align-content: center;
justify-content: center;
}
#block-bartik-main-menu .menu-level-0 {
display: grid;
grid-template-columns: repeat(4, 1fr);
}
#block-bartik-main-menu .menu-dropdown-0 {
position: absolute;
left: 0;
width: 100%;
padding-top: 16px;
background-color: rgba(141,139,132, 0.9);
}
.view-tutorials .view-content {
display: grid;
grid-template-columns: repeat(3, 1fr);
}
.view-tutorials .views-row {
display: grid;
justify-items: center;
}
.view-tutorials .views-row span > a {
font-size: 1.3rem
}
.view-tutorials .views-row .views-field-field-intro-text {
font-size: 1rem;
}
Надеюсь, вам понравился этот урок. Спасибо за чтение!