Drupal 8 のすべてのテーマの Twig テンプレートで使用できるようにする必要があるいくつかのグローバル変数を設定したいと考えています。
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
I define 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
. どうやってやるの?