protected RouteSubscriber::alterRoutes(RouteCollection $collection)
Alters existing routes for a specific collection.
Parameters
\Symfony\Component\Routing\RouteCollection $collection: The route collection for adding routes.
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) { list($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(); } } }
Please login to continue.