Рейтинг:0

Загрузка значения поля в шаблоне ветки

флаг cn

Я создаю веб-сайт для нескольких стран с использованием Drupal 8. Компания хотела бы, чтобы каждый регион управлял своим веб-сайтом независимо, но при этом иметь «глобальный» сайт.Я создаю тему, в которой есть несколько жестко закодированных областей (телефонные номера, уведомление об авторских правах и т. д.), которые я хочу, чтобы каждый регион мог изменять самостоятельно. Я думаю, чтобы создать область контента, скажем, «авторское право».

Как отобразить значение поля для объекта контента в теме ветки? Есть ли лучший способ справиться с таким процессом?

Рейтинг:1
флаг pt

В Drupal есть несколько отличных нативных концепций для выполнения именно того, чего вы пытаетесь достичь.

Основной, который вы ищете, встроен прямо в него. Он называется Блоки. Блоки могут быть произвольными объектами, которые можно размещать в тематических областях, которые вы определяете на своем сайте. Большая часть того, как Drupal обрабатывает рендеринг контента, каким-то образом связана с блоками, будь то блоки, управляемые системой, такие как блок «Основное содержимое», блоки меню и так далее.

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

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

В зависимости от того, как вы решите сгруппировать контент и определить, что такое «Страна» в Drupal, вы можете добавить вспомогательные модули, такие как Контекст иметь чрезвычайно детальный контроль над тем, что и где отображается.

Рендеринг поля в шаблонах twig может быть очень простым или чрезвычайно сложным в зависимости от того, где вы пытаетесь его отобразить.Я настоятельно рекомендую прочитать The Руководство по темам Drupal для общего понимания того, как это все работает.

Шаблоны Drupal разбиты на слои.

  • html.html.twig - это самый простой каркас веб-страницы
  • страница.html.twig - что является базовой семантической структурой вашей страницы (страниц) и где расположены ваши регионы.
  • регион.html.twig - это код-оболочка для ваших регионов, где живут блоки
  • block.html.twig - где блоки становятся тематическими - здесь можно отображать поля, созданные на блочных объектах
  • узел.html.twig - Узлы — это ваши «страницы» контента, которые вы создаете, такие как сообщения в блогах, контент о нас и так далее. Они также могут иметь поля и отображаться на этом уровне.
  • поле.html.twig - Отдельные поля также имеют собственные шаблоны и могут быть изменены по вашему желанию.
  • И так далее. (есть много других типов шаблонов, их слишком много, чтобы упоминать здесь, но вы поняли идею) См. дополнительные материалы: https://www.drupal.org/docs/theming-drupal/twig-in-drupal/twig-template-naming-conventions

Надеюсь, это поможет!

PS: И последнее замечание: я бы не стал создавать новые сайты с помощью Drupal 8. Версия Drupal 8 устарела. Вы должны использовать Drupal 9. Хорошая новость заключается в том, что Drupal 9 функционально почти идентичен Drupal 8, и вы сможете легко обновить свою существующую работу до него.

mauzilla avatar
флаг cn
Спасибо за полезный отзыв

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

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