В настоящее время у меня установлена тема, которую я приобрел, на моем веб-сайте Drupal.
Внутри папки темы есть папка шаблонов, которая содержит:
- page.html.twig
- страница - front.html.twig
фрагмент из page.html.twig выглядит следующим образом:
<footer class="site-footer">
<div class="layout-container">
{% if page.footer_first or page.footer_second or page.footer_third %}
<div class="footer-top">
<div class="footer-top-inner">
{{ page.footer_first }}
{{ page.footer_second }}
{{ page.footer_third }}
</div>
</div>
{% endif %}
{% if page.footer_left or page.footer_right %}
<div class="footer-bottom">
<div class="footer-bottom-inner">
{{ page.footer_left }}
{{ page.footer_right }}
</div><!-- /.footer-bottom-inner -->
</div>
{% endif %}
</div>
</footer>
У меня есть собственный модуль, который я создал (business_listing), который загружает разные шаблоны .html.twig. Я добавляю эти шаблоны в business_listing.module:
function business_listing_theme($existing, $type, $theme, $path) {
return [
// business-listing-detail.html.twig
'business_listing_detail' => [
'variables' => ['data' => [], 'slides' => [], 'paths' => [], 'page' => []],
],
]
}
В принципе, я хотел бы знать, как я могу динамически добавлять разметку для нижнего колонтитула из моего настраиваемого контроллера модулей.
У меня есть страница под названием business -isting-detail.html.twig внутри моей папки шаблонов пользовательских модулей. Насколько я понимаю, business -isting-detail.html.twig использует / каким-то образом расширяет page.html.twig в моей теме / шаблонах. Теперь я хотел бы знать, как я могу добавить такие разделы, как {{page.footer_left}}
, в мой бизнес-листинг-detail.html.twig или в page.html.twig с помощью моего контроллера? Я попытался добавить нижний колонтитул, используя следующее:
$ page ['footer_left'] = "Это должно появиться в div .footer-bottom?";
$build = [];
$build['business_listing_detail'] = [
'#theme' => 'business_listing_detail',
'#data' => $record,
'#slides' => $slides,
'#paths' => $this->paths,
'#page' => $page
];`
в функции контроллера, связанной со страницей сведений о моей компании, надежды на то, что page.html.twig обнаружит этот page.footer_left и отобразит нижний колонтитул, это не сработало. Переменная существует в business -isting-detail.html.twig, но {% if page.footer_left %}
в моих темах page.html.twig не запускается. Пожалуйста, пожалуйста, мы будем благодарны за любую помощь или совет ‹3
В основном все, что я пытаюсь сделать, это динамически отображать шаблон для конкретной страницы в моем настраиваемом модуле, что позволяет мне реализовывать / отправлять разметку в разделы / регионы, определенные в моей теме, например. Feature_top, content_top и page.content
С уважением, Мэтт