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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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.