You are here

public function ThemeHandler::addTheme in Drupal 9

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Extension/ThemeHandler.php \Drupal\Core\Extension\ThemeHandler::addTheme()

Adds a theme extension to the internal listing.

Parameters

\Drupal\Core\Extension\Extension $theme: The theme extension.

Overrides ThemeHandlerInterface::addTheme

File

core/lib/Drupal/Core/Extension/ThemeHandler.php, line 82

Class

ThemeHandler
Default theme handler using the config system to store installation statuses.

Namespace

Drupal\Core\Extension

Code

public function addTheme(Extension $theme) {

  // Register the namespaces of installed themes.
  // @todo Implement proper theme registration
  // https://www.drupal.org/project/drupal/issues/2941757
  \Drupal::service('class_loader')
    ->addPsr4('Drupal\\' . $theme
    ->getName() . '\\', $this->root . '/' . $theme
    ->getPath() . '/src');
  if (!empty($theme->info['libraries'])) {
    foreach ($theme->info['libraries'] as $library => $name) {
      $theme->libraries[$library] = $name;
    }
  }
  if (isset($theme->info['engine'])) {
    $theme->engine = $theme->info['engine'];
  }
  if (isset($theme->info['base theme'])) {
    $theme->base_theme = $theme->info['base theme'];
  }
  $this->list[$theme
    ->getName()] = $theme;
}