Рейтинг:0

Как сделать переменную Twig, предоставленную модулем, доступной для шаблона twig другого модуля?

флаг kz

Я новичок, когда дело доходит до объединения функций API drupal с шаблоном twig.

Я создал узел, названный шрифтом awesome icon. Переменные Twig этого поля находятся в

шрифтawesomeicon.html.twig:

 * тег: тег HTML, используемый для создания значка. 
 * значок: имя значка, используемого для создания шаблона.
 * стиль: стиль Font Awesome для значка.
 * настройки: дополнительные настройки стиля Font Awesome.
 * преобразования: Силовые преобразования Font Awesome.
 * маска: Маска Font Awesome.
 * css: Дополнительные встроенные стили CSS (для двухцветных и т. д.).

Итак, как сделать их доступными для мой-изображение-слайдер-блок.html.twig

или, другими словами, как убедиться, что {% include 'fontawesomeicon.html.twig' %} будет отображаться с указанными выше переменными?

Эти переменные предоставляются https://www.drupal.org/project/fontawesome.

Я с нетерпением жду ваших ответов и надеюсь, что смогу воспроизвести их содержание и в других случаях использования.

флаг ru
Это то, что вы вообще не должны делать в Drupal. Почти все шаблоны Twig в Drupal являются собственными кешированными сущностями, передача переменных между шаблонами часто нарушает кеширование. Есть крайние случаи, когда вам нужно совместно использовать переменные (и вам понадобится дополнительный код PHP, чтобы сделать его безопасным для кеша), но не используйте этот подход в качестве воспроизводимого рецепта.
флаг ru
Некоторые общие советы по запросу данных в Twig см. в моем ответе в [Доступ к значению узла в шаблоне ветки абзаца] (https://drupal.stackexchange.com/questions/306971/accessing-node-value-in-paragraph-twig-template /306975#306975)
Josh avatar
флаг kz
Значит, в настоящее время нет безопасного способа передать переменную из одного модуля в другой? Могу ли я визуализировать вывод файла с помощью nid и затем объявить для него переменную в шаблоне ветки блоков?
Kevin avatar
флаг in
Узлы не должны содержать конфигурацию, такую ​​как шрифт и стили. Если это то, что вам нужно, вы должны использовать конфигурацию, а не контент.
Josh avatar
флаг kz
Может быть, я на неправильном пути. Мне просто нравится добавлять символ шрифта awesome, выбранный с помощью средства выбора значков шрифта Awesome, поданного на узле, к слайдеру varbase media hero. Конечно, модуль не генерирует для меня переменную ветки, поэтому теперь я ищу альтернативный способ рендеринга вывода поля в блоке, предоставленном заголовком varbase media в шаблоне блока. Поскольку блоки кэшируются, что может быть невозможно даже при использовании файла .theme в моей подтеме, у меня просто заканчиваются идеи.
jbarrio avatar
флаг cn
Я нахожу остальные комментарии очень полезными. Пытаясь помочь, я бы сказал, что (возможно, я не понял смысла), если вы хотите предоставить «постоянные» переменные для различных модификаций вашей темы, я бы сказал, что это сделает предоставление переменной в theme_preprocess. Если вы устанавливаете переменную в своем custommodule1 и вам нужно, чтобы она была доступна в custommodule2, то убедитесь, что вы запускаете предварительный процесс в custommodule1 до запуска модуля 2 с помощью hook_module_implements_alter.

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

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