ScheduledTransitionRouteProvider.php in Scheduled Transitions 2.x
File
src/Routing/ScheduledTransitionRouteProvider.php
View source
<?php
declare (strict_types=1);
namespace Drupal\scheduled_transitions\Routing;
use Drupal\Core\Entity\EntityTypeInterface;
use Drupal\Core\Entity\Routing\DefaultHtmlRouteProvider;
use Symfony\Component\Routing\Route;
class ScheduledTransitionRouteProvider extends DefaultHtmlRouteProvider {
public function getRoutes(EntityTypeInterface $entity_type) {
$collection = parent::getRoutes($entity_type);
if ($route = $this
->getRescheduleFormRoute($entity_type)) {
$collection
->add('entity.scheduled_transition.reschedule_form', $route);
}
return $collection;
}
protected function getRescheduleFormRoute(EntityTypeInterface $entityType) {
if ($entityType
->hasLinkTemplate('reschedule-form')) {
$entityTypeId = $entityType
->id();
$route = new Route($entityType
->getLinkTemplate('reschedule-form'));
$route
->addDefaults([
'_entity_form' => "{$entityTypeId}.reschedule",
'_title' => 'Reschedule transition',
])
->setRequirement('_entity_access', "{$entityTypeId}.reschedule")
->setRequirement($entityTypeId, '\\d+')
->setOption('parameters', [
$entityTypeId => [
'type' => 'entity:' . $entityTypeId,
],
]);
return $route;
}
return NULL;
}
}