class MaintenanceModeSubscriber in Maintenance Mode Exclude Urls 8
Hierarchy
- class \Drupal\mmeu\EventSubscriber\MaintenanceModeSubscriber implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
Expanded class hierarchy of MaintenanceModeSubscriber
1 string reference to 'MaintenanceModeSubscriber'
1 service uses MaintenanceModeSubscriber
File
- src/
EventSubscriber/ MaintenanceModeSubscriber.php, line 13 - Contains \Drupal\mmeu\EventSubscriber\MaintenanceModeSubscriber.
Namespace
Drupal\mmeu\EventSubscriberView source
class MaintenanceModeSubscriber implements EventSubscriberInterface {
/**
* Put the site into online mode
*
* @param \Symfony\Component\HttpKernel\Event\GetResponseEvent $event
* The event to process.
*/
public function onKernelRequestMaintenance(GetResponseEvent $event) {
$request = $event
->getRequest();
$current_path = \Drupal::service('path.current')
->getPath();
if (substr($current_path, 0, 1) == '/') {
$path = substr($current_path, 1, strlen($current_path) - 1);
}
else {
$path = $current_path;
}
$mmeu_urls = \Drupal::config('mmeu.settings')
->get('mmeu');
$alias_path = \Drupal::service('path.alias_manager')
->getAliasByPath($current_path);
$config = \Drupal::configFactory()
->getEditable('mmeu.system.maintenance_mode');
if ($path != 'admin/config/development/maintenance') {
if ($config
->get('system_maintenance_mode') == TRUE) {
\Drupal::state()
->set('system.maintenance_mode', TRUE);
}
}
if (\Drupal::state()
->get('system.maintenance_mode') == TRUE && $mmeu_urls != '') {
if (\Drupal::service('path.matcher')
->matchPath($path, $mmeu_urls) || \Drupal::service('path.matcher')
->matchPath($alias_path, $mmeu_urls) || preg_match('/<front>/', $mmeu_urls) && $path == '') {
\Drupal::state()
->set('system.maintenance_mode', FALSE);
$config
->set('system_maintenance_mode', TRUE)
->save();
}
}
else {
$config
->set('system_maintenance_mode', FALSE)
->save();
}
}
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents() {
$events[KernelEvents::REQUEST][] = array(
'onKernelRequestMaintenance',
40,
);
return $events;
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
MaintenanceModeSubscriber:: |
public static | function | ||
MaintenanceModeSubscriber:: |
public | function | Put the site into online mode |