Несколько блоков в одном блоке

18 января 2023 в 13:28
Аватар пользователя xSPiRiTx xSPiRiTx 0 11

На странице есть несколько блоков вьюх (каждый под свой тип материала), которые разворачиваются с помощью модуля collapsiblock . Сами вьюхи - это карусельки слайдеры. Хочу эти блоки собрать в единый блок со своим одним заголовком. Как возможно реализовать?

Постараюсь объяснить задачу. На странице должно быть несколько каруселей изображений (например, использую swiper formatter + photoswipe), которые разворачиваются или сворачиваются по клику на заголовок (использую collapsiblock). Нажимаешь на "Кошки" - развернулся слайдер с кошками, нажал на "Собаки" - развернулся слайдер с фотками собак.
Сделал типы материала (кошки, собаки, хомяки...) с полем изображения. По каждому типу материала создал по блоку views (с выводом через swiper formatter + photoswipe). Теперь стоит задача как всё это дело завернуть под общий заголовок "Домашние животные".
Как по уму посоветуете это замутить. И насколько будет правильным решение запихать все эти блоки в один блок (как писал выше)? Насколько помню для семёрки был модуль, который умел выводить ноды как блоки.

Комментарии

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

Также вьюзы поддерживают контент во вкладках, возможно такое тоже будет полезно.

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

18 января 2023 в 13:39

Можно кстати через Layout builder. Включаешь модуль block_content, если он не включен. Создаёшь тип блока, удаляешь из него все поля. В настройках отображения ставишь галочку использовать Layout builder, и вторую галочку, что у каждого блока может быть свой лэйаут. Ну и всё. Далее создаёшь блок, переходишь на вкладку layout и добавляешь блоки в блок.

И при этом не нужно ни одной строчки кода и ни одного контрибного модуля.

18 января 2023 в 22:56

получилось, но так же как и с модулем block group у этих модулей в layout не работает collapsiblock.
А цель стояла такая, чтобы эти блоки умели разворачиваться по клику

19 января 2023 в 9:50

Такие вещи проще сделать парой строчкой js кода в теме оформления. И проще будет и работать будет везде где надо.

19 января 2023 в 9:53

Как по уму - не знаю. Layout builder или Paragraphs или Panels или еще что позабористее. Если вам удобно, значит это по уму - пользуйтесь.

Несколько блоков объединить - blockgroup. Конфликтует с фасетами - отказался от него.

"Насколько помню для семёрки был модуль, который умел выводить ноды как блоки" - block_node

19 января 2023 в 6:08

Коллапсы стоит ручками научится делать.
https://www.rapiddg.com/article/how-build-accessible-accordion-drupal - я правда не понимаю о чем там.

https://www.youtube.com/watch?v=8YhfAq57qdE&t=18s - тут для 7ки, но принцип тот же. Хотя синтаксис чучуть другой.

19 января 2023 в 18:56