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();
} } }