Рейтинг:0

Как добавить стили в регионы?

флаг cn

В компоновщике Drupal у меня может быть раздел с несколькими областями перетаскивания. Каждый регион может содержать несколько компонентов (например, полей). Я хотел бы добавить стиль к региону, а не к разделу или компоненту. НАПРИМЕР. На приведенном ниже рисунке я хотел бы, чтобы редактор мог добавить красную рамку к области перетаскивания, содержащей поле 5 и поле 6.

введите описание изображения здесь

Я просмотрел модуль «Стили макета», и, похоже, он охватывает только разделы и компоненты. Есть ли решение в ядре (возможно, активный патч) или вклад, позволяющий редактору управлять стилями регионов?

Рейтинг:2
флаг in

Макеты — это просто плагины, которые по умолчанию используют \Drupal\Core\Layout\LayoutDefault как его реализация. Встроенные двухколоночные и трехколоночные макеты расширяются от MultiWidthLayoutBase который простирается от МакетПо умолчанию. Их реализация является пользовательской, что позволяет им определять, что распределение ширины выбирается всякий раз, когда вы их используете.

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

  1. Определить расширение класса МакетПо умолчанию.
  2. Определите макет в .layouts.yml, с этими учебный класс указывая свой класс на шаге 1.
  3. В этом пользовательском классе определите дополнительные свойства конфигурации и их входные данные формы для всего, что вы хотите настроить (например, добавьте текстовое поле для добавления классов для определенного региона).
  4. В ветке макета найдите и используйте это свойство, чтобы настроить регион (например, распечатать класс)
  5. Повторите 3 и 4 для других вещей, которые вы хотите настроить в макете.

Видеть https://www.drupal.org/docs/drupal-apis/layout-api/how-to-register-layouts#using-class-key для получения подробной информации о том, как определить макет с пользовательской конфигурацией.

флаг cn
Спасибо, что разъяснили это. Я немного разочарован необходимостью расширения класса - не из-за предварительной работы, а из-за того, что я вижу, что этот подход ограничивает использование других модулей contrib - многие заявляют, что они не работают с плагинами пользовательского макета. Поскольку таргетинг на регионы кажется очень общим вариантом использования, знаете ли вы, есть ли какая-либо работа в ядре, чтобы стандартизировать расширяемую форму плагина макета и позволить Contrib просто изменить форму?
флаг in
@lolcode Существует модуль под названием [Класс настраиваемых разделов макета] (https://www.drupal.org/project/layout_custom_section_classes). Этот модуль добавляет текстовое поле для добавления классов в раздел (вероятно, модуль, на который вы ссылались, когда говорили «не в разделе»).Однако интересная часть этого модуля заключается в том, как он может добавлять это текстовое поле в _любой_ макет, а не только в один. Вероятно, вы можете адаптировать подход, который он использовал, добавить текстовое поле для каждого региона и убедиться, что значения текстового поля попадают в `region_attributes`. Вы бы написали это только один раз и использовали в любом макете оттуда.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.