class RouteSubscriber in Config Entity Revisions 8.2
Same name in this branch
- 8.2 modules/contact_form_revisions/src/Routing/RouteSubscriber.php \Drupal\contact_form_revisions\Routing\RouteSubscriber
- 8.2 modules/webform_revisions/src/Routing/RouteSubscriber.php \Drupal\webform_revisions\Routing\RouteSubscriber
- 8.2 modules/view_revisions/src/Routing/RouteSubscriber.php \Drupal\view_revisions\Routing\RouteSubscriber
Class RouteSubscriber.
@package Drupal\view_revisions\Routing
Hierarchy
- class \Drupal\Core\Routing\RouteSubscriberBase implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
- class \Drupal\view_revisions\Routing\RouteSubscriber
Expanded class hierarchy of RouteSubscriber
1 string reference to 'RouteSubscriber'
- view_revisions.services.yml in modules/
view_revisions/ view_revisions.services.yml - modules/view_revisions/view_revisions.services.yml
1 service uses RouteSubscriber
- view_revisions.route_subscriber in modules/
view_revisions/ view_revisions.services.yml - Drupal\view_revisions\Routing\RouteSubscriber
File
- modules/
view_revisions/ src/ Routing/ RouteSubscriber.php, line 13
Namespace
Drupal\view_revisions\RoutingView source
class RouteSubscriber extends RouteSubscriberBase {
/**
* {@inheritdoc}
*/
protected function alterRoutes(RouteCollection $collection) {
$latest_revision_routes = [
'entity.view.edit_form',
];
foreach ($latest_revision_routes as $route_name) {
if ($route = $collection
->get($route_name)) {
$current = $route
->getOption('parameters') ?: [];
$current['view']['load_latest_revision'] = TRUE;
$route
->setOption('parameters', $current);
}
}
// The following array should match the list in the RouteProcessor.
$specific_revision_routes = [
'entity.view.edit_display_form',
'entity.view.preview_form',
'views_ui.form_add_handler',
'views_ui.form_edit_details',
'views_ui.form_reorder_displays',
'views_ui.form_analyze',
'views_ui.form_rearrange',
'views_ui.form_rearrange_filter',
'views_ui.form_display',
'views_ui.form_handler',
'views_ui.form_handler_extra',
'views_ui.form_handler_group',
];
foreach ($specific_revision_routes as $route_name) {
if ($route = $collection
->get($route_name)) {
$current = $route
->getOption('parameters') ?: [];
$current['revision_id'] = TRUE;
$route
->setOption('parameters', $current);
$path = $route
->getPath();
$path = str_replace('{view}', '{view}/{revision_id}', $path);
$route
->setPath($path);
}
}
foreach ($collection as $route) {
$options = $route
->getOptions();
if (array_key_exists('_view_display_plugin_id', $options)) {
$route
->setRequirement('_can_access_views_revision', 'TRUE');
}
}
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
RouteSubscriber:: |
protected | function |
Alters existing routes for a specific collection. Overrides RouteSubscriberBase:: |
|
RouteSubscriberBase:: |
public static | function | Returns an array of event names this subscriber wants to listen to. | 5 |
RouteSubscriberBase:: |
public | function | Delegates the route altering to self::alterRoutes(). | 1 |