contacts_events-8.x-1.x-dev/modules/accommodation/src/AccommodationHtmlRouteProvider.php
modules/accommodation/src/AccommodationHtmlRouteProvider.php
<?php namespace Drupal\contacts_events_accommodation; use Drupal\Core\Entity\EntityTypeInterface; use Drupal\Core\Entity\Routing\AdminHtmlRouteProvider; use Symfony\Component\Routing\Route; /** * Provides HTML routes for accommodation entities. */ class AccommodationHtmlRouteProvider extends AdminHtmlRouteProvider { /** * {@inheritdoc} */ protected function getCollectionRoute(EntityTypeInterface $entity_type) { if ($route = parent::getCollectionRoute($entity_type)) { $route->setOption('_admin_route', TRUE); $route->setOption('parameters', [ 'contacts_event' => ['type' => 'entity:contacts_event'], ]); $route->setRequirement('_contacts_events_accommodation', 'TRUE'); return $route; } } /** * {@inheritdoc} */ protected function getCanonicalRoute(EntityTypeInterface $entity_type) { if ($entity_type->hasLinkTemplate('canonical')) { $entity_type_id = $entity_type->id(); $route = new Route($entity_type->getLinkTemplate('canonical')); // Use the edit form handler, if available, otherwise default. $operation = 'default'; if ($entity_type->getFormClass('edit')) { $operation = 'edit'; } $route ->setDefaults([ '_entity_form' => "{$entity_type_id}.{$operation}", '_title_callback' => '\Drupal\Core\Entity\Controller\EntityController::editTitle', ]) ->setRequirement('_entity_access', "{$entity_type_id}.update") ->setOption('parameters', [ $entity_type_id => ['type' => 'entity:' . $entity_type_id], ]) ->setOption('_admin_route', 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; } } }