2014-12-09 4 views
4

Я пытаюсь использовать Drupal 8 с собственной темой, из-за больших различий в структуре для моих требований У меня есть страница - front.twig.html и page.twig.html, я бы например, создавать шаблонные части, используемые в phrozn oder в обычном проекте Symfony2, например, footer.html.twig и header.html.twig. Эти шаблоны сохраняются в подкаталоге/parts/Drupal 8 включает шаблон детали

Но wenn Я называю эти шаблоны как обычно, я просто получаю строку с именем шаблона.

Например:

{# in page.html.twig or page--front.html.twig #} 
{% include 'parts/footer.html.twig' %} 

Возвращает имя файла как строку:

parts/footer.html.twig 

Можно сделать это с Drupal 8?

ответ

3

Вы можете включать в себя любую часть ваших файлов шаблонов, как этот

{% include directory ~ '/parts/footer.html.twig' %} 

или этого

{% include '@mytheme/parts/footer.html.twig' %} 

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

{# filename: page-layout.html.twig #} 

{% block content%} 
{{ page.content }} 
{% endblock%} 

{% block footer%} 
{% include '@mytheme/parts/footer.html.twig' %} 
{% endblock%} 

Так что вы можете сделать что-то подобное в другой странице

{# filename: page--front.html.twig #} 
{% block footer%} 
<div> I want to handle a different footer in here</div> 
{% endblock%} 

Наконец, я нашел очень полезным, чтобы копаться в любые предложения массива и увидеть, что Drupal пытается использовать.

Cheers.

+1

каталог '' ~ часть вашего ответа очень полезно, спасибо – kevpoccs

1

Теперь, когда https://www.drupal.org/node/2291449 было совершено вы также можете сделать:

{% include 'footer.html.twig' %} 
+0

-х Может вы пишете ответ и для HTTP: //drupal.stackexchange .com/questions/141066/drupal-8-include-part-template, возможно, более обширный? – kiamlaluno

+0

@kiamlaluno sure .tnx – zhilevan

+0

Когда я использую что-то вроде этого: {% include 'site-header.html.twig'%} twig throws me error "Twig_Error_Loader: Template" site-header.html.twig "не определен" он работает с @ themename/site-header.html.twig, но я нахожу его уродливым, и phpstorm не знает, как его решить – jmwierzbicki