Как установить переменную для всех шаблонов тем в 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
}

Сделал трюк для меня после очистки кеша.

Другие вопросы по тегам