8.5.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.5.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.5.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.5.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.0.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.0.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.0.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.0.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.1.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.1.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.1.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.1.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.2.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.2.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.2.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.2.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.3.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.3.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.3.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.3.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.4.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.4.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.4.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.4.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.6.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.6.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.6.x RouteSubscriber.php RouteSubscriber::alterRoutes(RouteCollection $collection)
8.6.x RouteSubscriber.php 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();
    }
  }
}