Mercurial > hg > isophonics-drupal-site
view core/modules/system/src/Theme/BatchNegotiator.php @ 19:fa3358dc1485 tip
Add ndrum files
author | Chris Cannam |
---|---|
date | Wed, 28 Aug 2019 13:14:47 +0100 |
parents | 4c8ae668cc8c |
children |
line wrap: on
line source
<?php namespace Drupal\system\Theme; use Drupal\Core\Batch\BatchStorageInterface; use Drupal\Core\Routing\RouteMatchInterface; use Drupal\Core\Theme\ThemeNegotiatorInterface; use Symfony\Component\HttpFoundation\RequestStack; /** * Sets the active theme for the batch page. */ class BatchNegotiator implements ThemeNegotiatorInterface { /** * The batch storage. * * @var \Drupal\Core\Batch\BatchStorageInterface */ protected $batchStorage; /** * The request stack. * * @var \Symfony\Component\HttpFoundation\RequestStack */ protected $requestStack; /** * Constructs a BatchNegotiator. * * @param \Drupal\Core\Batch\BatchStorageInterface $batch_storage * The batch storage. * @param \Symfony\Component\HttpFoundation\RequestStack $request_stack * The request stack used to retrieve the current request. */ public function __construct(BatchStorageInterface $batch_storage, RequestStack $request_stack) { $this->batchStorage = $batch_storage; $this->requestStack = $request_stack; } /** * {@inheritdoc} */ public function applies(RouteMatchInterface $route_match) { return $route_match->getRouteName() == 'system.batch_page'; } /** * {@inheritdoc} */ public function determineActiveTheme(RouteMatchInterface $route_match) { // Retrieve the current state of the batch. $request = $this->requestStack->getCurrentRequest(); $batch = &batch_get(); if (!$batch && $request->request->has('id')) { $batch = $this->batchStorage->load($request->request->get('id')); } // Use the same theme as the page that started the batch. if (!empty($batch['theme'])) { return $batch['theme']; } } }