Мне нужно визуализировать блок представлений в моем шаблоне page.html.twig. В D7 я бы сделал это:
<?php
$block = module_invoke('module_name', 'block_view', 'block_delta');
print render($block['content']);
?>
В Drupal 8 module_invoke устарел и рекомендуется использовать это: (я добавил имя блока в качестве второго параметра)
Drupal::moduleHandler()->invoke($block, 'views_block__blog_block_1', $args = array());
Я попробовал несколько вещей. Сначала попытался сделать это в шаблоне ветки, но я не знаю, как вызывать функции php в шаблоне ветки, так что это не получилось слишком хорошо.
Затем я вызвал функцию в функции preprocess_page () в файле .theme, но прежде чем я смог заставить ее работать, я попытался сделать что-то попроще, просто попытаться заставить переменную работать внутри шаблона ветки, который тоже не работал, например:
В функции template_preprocess_page (& $ vars) в файле .theme:
$test = 'Hello World';
$vars['$my_var'] = $test;
Я попытался вызвать my_var внутри шаблона ветки, но он не сработал, и я получил сообщение об ошибке «Сайт имеет ошибку, пожалуйста, свяжитесь с администратором»
Итак, подведем итог, вот мои вопросы:
- Как сделать переменные доступными внутри шаблонов веточек?
- Как вызвать функции внутри шаблонов веточек?
- Отображать ли блоки внутри файла .theme или шаблона ветки?