Я пытаюсь использовать Drupal 8, с пользовательской темой, из-за больших структурных различий в моих требованиях. У меня есть страница - front.twig.html и page.twig.html, я хотел бы создать части шаблона, используемые в phrozn oder в обычном проекте Symfony2, например, footer.html.twig и header.html.twig. Эти шаблоны сохраняются в подкаталоге / parts /.
Но когда я называю эти шаблоны как обычно, я просто получаю строку с названием шаблона.
Например:
{# in page.html.twig or page--front.html.twig #}
{% include 'parts/footer.html.twig' %}
Возвращает имя файла в виде строки:
parts/footer.html.twig
Это возможно сделать с помощью Drupal 8?
include
передачи значений? Предположим, я хотел бы включитьimage-formatter
и пропуститьurl
ноль, чтобы избежать создания связанного изображения.@mytheme
в виду, что разрешает путьmytheme
+ строки/templates
. Другими словами,@mytheme
разрешается вmytheme/templates
каталог.@mytheme
в «themes / custom / mytheme / templates» . Включение шаблона, расположенного по адресу,@mytheme/fragments/footer.html.twig
означает, что он будет преобразованИспользуйте полный путь к каталогу темы. Если вы используете пространство имен, вам придется изменить его, если вы перенесете код на другой сайт или тему.
Это должно работать:
источник
Также возможно использование массива Twig для создания запасного варианта, когда файл не существует.
Например. Если footer.html.twig недоступен, будет использоваться defaultfooter.html.twig.
Объедините это с использованием переменных в именах файлов, и вы можете включать разные файлы в зависимости от своего рода контекста.Nb: Я все еще пытаюсь понять, является ли это лучшей практикой или нет.
источник
Обратите внимание, что вы можете передавать переменные после
with
ключевого слова:См. Документацию Twig http://twig.sensiolabs.org/doc/tags/include.html.
источник
Теперь, когда добавлено наследование шаблона Twig на основе реестра тем, разрешено добавление загрузчиков Twig , вы также можете использовать следующую строку.
источник
Для Drupal 8
Включение файла ветки в тему, когда вы выполняете
{% include 'FILE_NAME.html.twig' %}
Drupal, ожидает, что ваш FILE будет находиться в вашем текущем каталоге тем. Просто положите его туда, и оно будет работать.Включение файла ветки в ваш модуль
Если вы хотите добавить его в МОДУЛЬ, вы должны объявить его в функции ТЕМА. В вашем файле .module просто добавьте следующее:
Затем поместите файл Twig в файл YOUR_MODULE / template / FILE_NAME.html.twig.
источник