function RouteSubscriber::alterRoutes

Same name in this branch
  1. 9 core/modules/media/tests/modules/media_test_embed/src/Routing/RouteSubscriber.php \Drupal\media_test_embed\Routing\RouteSubscriber::alterRoutes()
  2. 9 core/modules/config_translation/src/Routing/RouteSubscriber.php \Drupal\config_translation\Routing\RouteSubscriber::alterRoutes()
  3. 9 core/modules/media_library/src/Routing/RouteSubscriber.php \Drupal\media_library\Routing\RouteSubscriber::alterRoutes()
  4. 9 core/modules/node/src/Routing/RouteSubscriber.php \Drupal\node\Routing\RouteSubscriber::alterRoutes()
  5. 9 core/modules/field_ui/src/Routing/RouteSubscriber.php \Drupal\field_ui\Routing\RouteSubscriber::alterRoutes()
Same name and namespace in other branches
  1. 8.9.x core/modules/media/tests/modules/media_test_ckeditor/src/Routing/RouteSubscriber.php \Drupal\media_test_ckeditor\Routing\RouteSubscriber::alterRoutes()
  2. 8.9.x core/modules/config_translation/src/Routing/RouteSubscriber.php \Drupal\config_translation\Routing\RouteSubscriber::alterRoutes()
  3. 8.9.x core/modules/media_library/src/Routing/RouteSubscriber.php \Drupal\media_library\Routing\RouteSubscriber::alterRoutes()
  4. 8.9.x core/modules/node/src/Routing/RouteSubscriber.php \Drupal\node\Routing\RouteSubscriber::alterRoutes()
  5. 8.9.x core/modules/views/src/EventSubscriber/RouteSubscriber.php \Drupal\views\EventSubscriber\RouteSubscriber::alterRoutes()
  6. 8.9.x core/modules/field_ui/src/Routing/RouteSubscriber.php \Drupal\field_ui\Routing\RouteSubscriber::alterRoutes()
  7. 10 core/modules/media/tests/modules/media_test_embed/src/Routing/RouteSubscriber.php \Drupal\media_test_embed\Routing\RouteSubscriber::alterRoutes()
  8. 10 core/modules/config_translation/src/Routing/RouteSubscriber.php \Drupal\config_translation\Routing\RouteSubscriber::alterRoutes()
  9. 10 core/modules/media_library/src/Routing/RouteSubscriber.php \Drupal\media_library\Routing\RouteSubscriber::alterRoutes()
  10. 10 core/modules/node/src/Routing/RouteSubscriber.php \Drupal\node\Routing\RouteSubscriber::alterRoutes()
  11. 10 core/modules/views/src/EventSubscriber/RouteSubscriber.php \Drupal\views\EventSubscriber\RouteSubscriber::alterRoutes()
  12. 10 core/modules/field_ui/src/Routing/RouteSubscriber.php \Drupal\field_ui\Routing\RouteSubscriber::alterRoutes()
  13. 10 core/modules/block_content/src/Routing/RouteSubscriber.php \Drupal\block_content\Routing\RouteSubscriber::alterRoutes()
  14. 11.x core/modules/media/tests/modules/media_test_embed/src/Routing/RouteSubscriber.php \Drupal\media_test_embed\Routing\RouteSubscriber::alterRoutes()
  15. 11.x core/modules/config_translation/src/Routing/RouteSubscriber.php \Drupal\config_translation\Routing\RouteSubscriber::alterRoutes()
  16. 11.x core/modules/media_library/src/Routing/RouteSubscriber.php \Drupal\media_library\Routing\RouteSubscriber::alterRoutes()
  17. 11.x core/modules/node/src/Routing/RouteSubscriber.php \Drupal\node\Routing\RouteSubscriber::alterRoutes()
  18. 11.x core/modules/views/src/EventSubscriber/RouteSubscriber.php \Drupal\views\EventSubscriber\RouteSubscriber::alterRoutes()
  19. 11.x core/modules/field_ui/src/Routing/RouteSubscriber.php \Drupal\field_ui\Routing\RouteSubscriber::alterRoutes()
  20. 11.x core/modules/block_content/src/Routing/RouteSubscriber.php \Drupal\block_content\Routing\RouteSubscriber::alterRoutes()

Overrides RouteSubscriberBase::alterRoutes

File

core/modules/views/src/EventSubscriber/RouteSubscriber.php, line 134

Class

RouteSubscriber
Builds up the routes of all views.

Namespace

Drupal\views\EventSubscriber

Code

protected function alterRoutes(RouteCollection $collection) {
    foreach ($this->getViewsDisplayIDsWithRoute() as $pair) {
        [
            $view_id,
            $display_id,
        ] = explode('.', $pair);
        $view = $this->viewStorage
            ->load($view_id);
        // @todo This should have an executable factory injected.
        if (($view = $view->getExecutable()) && $view instanceof ViewExecutable) {
            if ($view->setDisplay($display_id) && ($display = $view->displayHandlers
                ->get($display_id))) {
                if ($display instanceof DisplayRouterInterface) {
                    // If the display returns TRUE a route item was found, so it does not
                    // have to be added.
                    $view_route_names = $display->alterRoutes($collection);
                    $this->viewRouteNames = $view_route_names + $this->viewRouteNames;
                    foreach ($view_route_names as $id_display => $route_name) {
                        $view_route_name = $this->viewsDisplayPairs[$id_display];
                        unset($this->viewsDisplayPairs[$id_display]);
                        $collection->remove("views.{$view_route_name}");
                    }
                }
            }
            $view->destroy();
        }
    }
}

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