В 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, и вы сможете легко обновить свою существующую работу до него.