protected function EntityModerationRouteProvider::getLatestVersionRoute in Drupal 8
Same name and namespace in other branches
- 9 core/modules/content_moderation/src/Entity/Routing/EntityModerationRouteProvider.php \Drupal\content_moderation\Entity\Routing\EntityModerationRouteProvider::getLatestVersionRoute()
Gets the moderation-form route.
Parameters
\Drupal\Core\Entity\EntityTypeInterface $entity_type: The entity type.
Return value
\Symfony\Component\Routing\Route|null The generated route, if available.
1 call to EntityModerationRouteProvider::getLatestVersionRoute()
- EntityModerationRouteProvider::getRoutes in core/
modules/ content_moderation/ src/ Entity/ Routing/ EntityModerationRouteProvider.php - Provides routes for entities.
File
- core/
modules/ content_moderation/ src/ Entity/ Routing/ EntityModerationRouteProvider.php, line 74
Class
- EntityModerationRouteProvider
- Dynamic route provider for the Content moderation module.
Namespace
Drupal\content_moderation\Entity\RoutingCode
protected function getLatestVersionRoute(EntityTypeInterface $entity_type) {
if ($entity_type
->hasLinkTemplate('latest-version') && $entity_type
->hasViewBuilderClass()) {
$entity_type_id = $entity_type
->id();
$route = new Route($entity_type
->getLinkTemplate('latest-version'));
$route
->addDefaults([
'_entity_view' => "{$entity_type_id}.full",
'_title_callback' => '\\Drupal\\Core\\Entity\\Controller\\EntityController::title',
])
->setRequirement('_entity_access', "{$entity_type_id}.view")
->setRequirement('_content_moderation_latest_version', 'TRUE')
->setOption('_content_moderation_entity_type', $entity_type_id)
->setOption('parameters', [
$entity_type_id => [
'type' => 'entity:' . $entity_type_id,
'load_latest_revision' => TRUE,
],
]);
// Entity types with serial IDs can specify this in their route
// requirements, improving the matching process.
if ($this
->getEntityTypeIdKeyType($entity_type) === 'integer') {
$route
->setRequirement($entity_type_id, '\\d+');
}
return $route;
}
}