Приветствую всех!
Раньше плотно работал с Drupal 7, недавно появилась задача сделать лендинг, решил сделать на 8 версии, и как раз изучить её на реальном проекте.
Сразу уточню что это не лендинг в чистом виде, а только главная (основная) страница сайта выполнена в виде landing page, так же есть отдельные страницы для новостей и т.п., так что вариант с одним статическим html файлом не подойдет.
Отметил некоторые требования которые хотелось бы видеть:
- Простота редактирования (в дальнейшем сайт будет редактировать человек далекий от разработки сайтов, и поменять текст/картинку не должно составлять труда и должно быть интуитивно понятно, как плохой пример - Panels в 7 друпале, где чтобы отредактировать содержимое нужно было прокликать 4-5 ссылок + слишком много других настроек - слишком 2) громоздко)
- Подстроиться под готовый шаблон (уже есть готовый HTML шаблон с версткой и JS библиотеками, нужно интегрировать его с минимальными изменениями)
В ходе поиска информации нашел 2 более-менее вменяемых подхода:
- Page Manager + Panels
- Новый тип материала + Paragraphs
Сначала попробовал первый вариант, но здесь уже есть два минуса:
- Panels все таки громоздкий модуль, и для редактирования неопытным пользователем в дальнейшем думаю не очень приемлимо
- На текущей версии баг с раскрытием JS меню "Variants", рано или поздно исправят, но пока не работает.
Попробовал пойти по второму пути:
- Создал новый тип материала "Лендинг"
- Добавил поля типа "Paragraph"
- Начал переопределять шаблоны чтобы убрать div обертки, которые добавляет Drupal
В общем на самом начальном этапе, когда только начал встраивать шаблон лендинга, и оформлял только шапку + слайдер уже пришлось переопределить 5(!) шаблонов только чтобы убрать обертки друпала.
Насколько вообще правильный данный подход? (Возникают сомнения что делаю правильно и что это может быть трудозатратно, когда нужно встроить в CMS одну страничку с лендингом нужно переопределить 10+ шаблонов)
Хотелось бы услышать ваше мнение на этот счет и советы по созданию лендингов на 8ой версии.
Существуют ли какие нибудь еще подходы менее трудозатратные и более правильные для решения данной проблемы?
P.S. Также столкнулся с проблемой, в шаблоне в слайдере изображение вставляется в атрибут style="background: url('...');"
В поле изображение в слайдере выбрал вид отображения "URL к изображению", НО в код эту ссылку друпал вставляет с отступами, и получается:
http://foo.bar/image.png
');" ></div>
Chrome такое не принимает, и фоновая картинка не показывается, в инструментах разработчика убираю отступы вручную - все работает. Попытался убрать отступы Twig фильтром trim, тогда в этом месте вообще ничего не выводится, как это решить?
Файл: paragraph--landing-page-slider-slide.html.twig
<div class="swiper-slide overlay" style="background: url('{{ content.field_image|trim }}'); background-size: cover;">
Комментарии
Про атрибут: https://twig.symfony.com/doc/2.x/templates.html#whitespace-control
Как вариант, попробуйте https://www.sooperthemes.com/drupal-modules/glazed-builder есть для семерки и восьмерки. Готовая верстка интегрируется легко, просто добавляешь чуть чуть css
Решение классное, спасибо за ссылку, но в бюджет не вписывается) Надо что то более доступное или открытое.
Посмотрите в сторону https://www.drupal.org/project/varbase_landing
Спасибо, посмотрю!