DbUpdateNegotiator.php

Same filename and directory in other branches
  1. 9 core/modules/system/src/Theme/DbUpdateNegotiator.php
  2. 10 core/modules/system/src/Theme/DbUpdateNegotiator.php
  3. 11.x core/modules/system/src/Theme/DbUpdateNegotiator.php

Namespace

Drupal\system\Theme

File

core/modules/system/src/Theme/DbUpdateNegotiator.php

View source
<?php

namespace Drupal\system\Theme;

use Drupal\Core\Config\ConfigFactoryInterface;
use Drupal\Core\Routing\RouteMatchInterface;
use Drupal\Core\Site\Settings;
use Drupal\Core\Theme\ThemeNegotiatorInterface;

/**
 * Sets the active theme for the database update pages.
 */
class DbUpdateNegotiator implements ThemeNegotiatorInterface {
    
    /**
     * The config factory.
     *
     * @var \Drupal\Core\Config\ConfigFactoryInterface
     */
    protected $configFactory;
    
    /**
     * Constructs a DbUpdateNegotiator.
     *
     * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
     *   The config factory.
     */
    public function __construct(ConfigFactoryInterface $config_factory) {
        $this->configFactory = $config_factory;
    }
    
    /**
     * {@inheritdoc}
     */
    public function applies(RouteMatchInterface $route_match) {
        return $route_match->getRouteName() == 'system.db_update';
    }
    
    /**
     * {@inheritdoc}
     */
    public function determineActiveTheme(RouteMatchInterface $route_match) {
        $custom_theme = Settings::get('maintenance_theme', 'seven');
        if (!$custom_theme) {
            $config = $this->configFactory
                ->get('system.theme');
            $custom_theme = $config->get('default');
        }
        return $custom_theme;
    }

}

Classes

Title Deprecated Summary
DbUpdateNegotiator Sets the active theme for the database update pages.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.