You are here

function claro_system_module_invoked_library_info_alter in Drupal 9

Same name and namespace in other branches
  1. 10 core/themes/claro/claro.theme \claro_system_module_invoked_library_info_alter()

Called by system.module via its hook_library_info_alter().

If the active theme is not Claro, but Claro is the admin theme, this alters the toolbar library config so Claro's toolbar stylesheets are used.

See also

system_library_info_alter()

1 call to claro_system_module_invoked_library_info_alter()
system_library_info_alter in core/modules/system/system.module
Implements hook_library_info_alter().

File

core/themes/claro/claro.theme, line 1638
Functions to support theming in the Claro theme.

Code

function claro_system_module_invoked_library_info_alter(&$libraries, $extension) {
  if ($extension === 'toolbar') {
    $claro_info = \Drupal::service('theme_handler')
      ->listInfo()['claro']->info;
    $path_prefix = '/core/themes/claro/';
    $claro_toolbar_overrides = $claro_info['libraries-override']['toolbar/toolbar'];
    foreach ($claro_toolbar_overrides['css'] as $concern => $overrides) {
      foreach ($claro_toolbar_overrides['css'][$concern] as $key => $value) {
        $config = $libraries['toolbar']['css'][$concern][$key];
        $libraries['toolbar']['css'][$concern][$path_prefix . $value] = $config;
        unset($libraries['toolbar']['css'][$concern][$key]);
      }
    }
    $claro_toolbar_menu_overrides = $claro_info['libraries-override']['toolbar/toolbar.menu'];
    foreach ($claro_toolbar_menu_overrides['css'] as $concern => $overrides) {
      foreach ($claro_toolbar_menu_overrides['css'][$concern] as $key => $value) {
        $config = $libraries['toolbar.menu']['css'][$concern][$key];
        $libraries['toolbar.menu']['css'][$concern][$path_prefix . $value] = $config;
        unset($libraries['toolbar.menu']['css'][$concern][$key]);
      }
    }
  }
}