From ef0a9e627da20acd4d07c343840a203f50283dfa Mon Sep 17 00:00:00 2001 From: Niklas Fiekas Date: Mon, 2 Apr 2012 19:28:29 +0200 Subject: [PATCH] Add a MaintenanceModeSubscriber. --- core/lib/Drupal/Core/DrupalKernel.php | 2 + .../MaintenanceModeSubscriber.php | 59 +++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 core/lib/Drupal/Core/EventSubscriber/MaintenanceModeSubscriber.php diff --git a/core/lib/Drupal/Core/DrupalKernel.php b/core/lib/Drupal/Core/DrupalKernel.php index 3899802af66..33fe6462b9e 100644 --- a/core/lib/Drupal/Core/DrupalKernel.php +++ b/core/lib/Drupal/Core/DrupalKernel.php @@ -23,6 +23,7 @@ use Drupal\Core\EventSubscriber\ViewSubscriber; use Drupal\Core\EventSubscriber\AccessSubscriber; use Drupal\Core\EventSubscriber\PathSubscriber; use Drupal\Core\EventSubscriber\LegacyControllerSubscriber; +use Drupal\Core\EventSubscriber\MaintenanceModeSubscriber; use Exception; @@ -70,6 +71,7 @@ class DrupalKernel extends HttpKernel { // replacement system. $this->dispatcher->addSubscriber(new ViewSubscriber($negotiation)); $this->dispatcher->addSubscriber(new AccessSubscriber()); + $this->dispatcher->addSubscriber(new MaintenanceModeSubscriber()); $this->dispatcher->addSubscriber(new PathSubscriber()); $this->dispatcher->addSubscriber(new LegacyControllerSubscriber()); diff --git a/core/lib/Drupal/Core/EventSubscriber/MaintenanceModeSubscriber.php b/core/lib/Drupal/Core/EventSubscriber/MaintenanceModeSubscriber.php new file mode 100644 index 00000000000..ec919bc4840 --- /dev/null +++ b/core/lib/Drupal/Core/EventSubscriber/MaintenanceModeSubscriber.php @@ -0,0 +1,59 @@ + filter_xss_admin(variable_get('maintenance_mode_message', t('@site is currently under maintenance. We should be back shortly. Thank you for your patience.', array('@site' => variable_get('site_name', 'Drupal'))))))); + $response = new Response('Service unavailable', 503); + $response->setContent($content); + $event->setResponse($response); + } + } + + /** + * Registers the methods in this class that should be listeners. + * + * @return array + * An array of event listener definitions. + */ + static function getSubscribedEvents() { + $events[KernelEvents::REQUEST][] = array('onKernelRequestMaintenanceModeCheck', 40); + return $events; + } +}