Как установить переменную для всех шаблонов тем в Drupal 8?
Я хочу установить несколько глобальных переменных, которые должны быть доступны во всех шаблонах Twig моей темы в Drupal 8.
В документации Drupal 7 упоминается функция предварительной обработки:
themeName_preprocess Этот назван в честь самой темы. Относится ко всем крючкам.
Поэтому я добавил функцию ниже к моему themename.theme
файл, но переменные не установлены.
function themename_preprocess(&$variables) {
$theme_path = $variables['base_path'] . $variables['directory'];
$variables['theme_path'] = $theme_path;
$variables['images_path'] = $theme_path . "/images/";
$variables['templates_path'] = $theme_path . "/templates/";
}
Когда вместо определения themename_preprocess
Я определяю themename_preprocess_page
(ниже) переменные правильно определены и доступны в page.html.twig
шаблон.
function themename_preprocess_page(&$variables) {
$theme_path = $variables['base_path'] . $variables['directory'];
$variables['theme_path'] = $theme_path;
$variables['images_path'] = $theme_path . "/images/";
$variables['templates_path'] = $theme_path . "/templates/";
}
Но я хочу, чтобы переменные были доступны во всех шаблонах, а не только page.html.twig
, Как я могу это сделать?
1 ответ
function themename_preprocess(&$variables) {
// code
}
Сделал трюк для меня после очистки кеша.