Я небольшой специалист в Drupal, однако, встала задача сделать следущее:
У меня есть параграф с именем
ad_section и 2-мя полями:
field_link (type:
Plain Text) и
field_video (type:
Media->Video)
Нужно чтобы на странице где выводится этот параграф, случилась проверка: если поле
field_video заполненно прикреплённым к нему видео-файлом, то в body добавить класс
has-video, а если это поле пустое и осталось незаполненным, то в body добавить класс
no-video
Сейчас в
html.html.twig классы для body выводятся так:
{%
set body_classes = [
logged_in ? 'user-logged-in'
]
%}
...
<body{{ attributes.addClass(body_classes) }}>
Как я понял, подобное можно сделать через preprocess-функции в файле моей темы
customtheme.theme
Но когда я пытаюсь даже пока безо всякой логики отправить из такой функции класс в body, то ничего не происходит:
function constructor_preprocess__paragraph__ad_section__field_video(&$variables) {
$variables['attributes']['class'][] = 'just-test';
}
Эти варианты также не дают никакого результата:
function constructor_preprocess__ad_section__field_video(&$variables) {
$variables['attributes']['class'][] = 'just-test';
}
function constructor_preprocess_field_video(&$variables) {
$variables['attributes']['class'][] = 'just-test';
}
function constructor_preprocess_paragraph__ad_section(&$variables) {
$variables['attributes']['class'][] = 'just-test';
}
Вопроса два:
1. Как всё же правильным образом реализовать preprocess-функцию для моего параграфа, чтобы она подхватывалась ядром?
2. И как можно в такой функции сделать проверку на прикреплённый видео-файл?