Chris@0: configFactory = $config_factory; Chris@18: $this->routerBuilder = $router_builder; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: protected function alterRoutes(RouteCollection $collection) { Chris@0: if ($this->configFactory->get('node.settings')->get('use_admin_theme')) { Chris@0: foreach ($collection->all() as $route) { Chris@0: if ($route->hasOption('_node_operation_route')) { Chris@0: $route->setOption('_admin_route', TRUE); Chris@0: } Chris@0: } Chris@0: } Chris@0: } Chris@0: Chris@18: /** Chris@18: * Rebuilds the router when node.settings:use_admin_theme is changed. Chris@18: * Chris@18: * @param \Drupal\Core\Config\ConfigCrudEvent $event Chris@18: */ Chris@18: public function onConfigSave(ConfigCrudEvent $event) { Chris@18: if ($event->getConfig()->getName() === 'node.settings' && $event->isChanged('use_admin_theme')) { Chris@18: $this->routerBuilder->setRebuildNeeded(); Chris@18: } Chris@18: } Chris@18: Chris@18: /** Chris@18: * {@inheritdoc} Chris@18: */ Chris@18: public static function getSubscribedEvents() { Chris@18: $events = parent::getSubscribedEvents(); Chris@18: $events[ConfigEvents::SAVE][] = ['onConfigSave', 0]; Chris@18: return $events; Chris@18: } Chris@18: Chris@0: }