civicrm_entity-8.x-3.0-beta1/src/Routing/CiviCrmEntityRouteProvider.php
src/Routing/CiviCrmEntityRouteProvider.php
<?php namespace Drupal\civicrm_entity\Routing; use Drupal\Core\Entity\EntityTypeInterface; use Drupal\Core\Entity\Routing\AdminHtmlRouteProvider; use Symfony\Component\Routing\RouteCollection; /** * Provides routing for CiviCRM entities. */ class CiviCrmEntityRouteProvider extends AdminHtmlRouteProvider { /** * {@inheritdoc} */ public function getRoutes(EntityTypeInterface $entity_type) { if ($entity_type->get('civicrm_entity_ui_exposed')) { return parent::getRoutes($entity_type); } return new RouteCollection(); } /** * {@inheritdoc} */ protected function getAddFormRoute(EntityTypeInterface $entity_type) { $has_bundles = $entity_type->hasKey('bundle'); $entity_add_form_route = parent::getAddFormRoute($entity_type); if ($has_bundles && $entity_add_form_route) { // This ensures the form receives a default bundle from the // CivicrmEntity::preCreate method, avoiding the need for the `add_page` // route for selecting a bundle. assert($entity_add_form_route !== NULL); $entity_add_form_route->setDefault('bundle', $entity_type->id()); } return $entity_add_form_route; } }