Как условно добавить класс в шаблон компонента Magnolia, основываясь на наличии другого компонента? - PullRequest
0 голосов
/ 14 мая 2019

Я хотел бы применить класс к своему компоненту заголовка в Magnolia, только если редакторы контента решили добавить компонент субтитров на страницу. Пример того, что я пытаюсь сделать ниже:

[#assign subtitle = "somehow get a reference to the subtitle component"]
[#assign subtitleExists = subtitle?has_content]
<div class="title ${subtitleExists?then('removePadding','')}">
  ${model.render('titleCopy')!}
</div>

Возможно ли это? Я рад добавить дополнительную информацию, чтобы помочь уточнить, что я пытаюсь сделать здесь, если это необходимо. Спасибо!

1 Ответ

0 голосов
/ 15 мая 2019

Компоненты атомарные, поэтому они обычно не видят друг друга и не могут влиять друг на друга.Это будет работа в области группировки компонентов или родительского компонента или самой страницы.

Тем не менее, если структура страницы и ваших шаблонов не позволяет вам другое решение, вы можете установить какой-либо флаг с помощью атрибута запроса в компоненте субтитров, а затем проверить наличие указанного флага в вашемкомпонент.
Что-то вроде ctx.setAttribute("subtitleExists", true, 1) с одной стороны и ctx.getAttribute("subtitleExists") с другой стороны.1 обозначает локальную (запрашиваемую) область действия для атрибута.

...