Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
CRAP | |
0.00% |
0 / 114 |
| RouteSubscriber | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
90 | |
0.00% |
0 / 114 |
| __construct | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| alterRoutes | |
0.00% |
0 / 1 |
56 | |
0.00% |
0 / 108 |
|||
| getSubscribedEvents | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 4 |
|||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\field_ui\Routing\RouteSubscriber. | |
| */ | |
| namespace Drupal\field_ui\Routing; | |
| use Drupal\Core\Entity\EntityManagerInterface; | |
| use Drupal\Core\Routing\RouteSubscriberBase; | |
| use Drupal\Core\Routing\RoutingEvents; | |
| use Symfony\Component\Routing\Route; | |
| use Symfony\Component\Routing\RouteCollection; | |
| /** | |
| * Subscriber for Field UI routes. | |
| */ | |
| class RouteSubscriber extends RouteSubscriberBase { | |
| /** | |
| * The entity type manager | |
| * | |
| * @var \Drupal\Core\Entity\EntityManagerInterface | |
| */ | |
| protected $manager; | |
| /** | |
| * Constructs a RouteSubscriber object. | |
| * | |
| * @param \Drupal\Core\Entity\EntityManagerInterface $manager | |
| * The entity type manager. | |
| */ | |
| public function __construct(EntityManagerInterface $manager) { | |
| $this->manager = $manager; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| protected function alterRoutes(RouteCollection $collection) { | |
| foreach ($this->manager->getDefinitions() as $entity_type_id => $entity_type) { | |
| if ($route_name = $entity_type->get('field_ui_base_route')) { | |
| // Try to get the route from the current collection. | |
| if (!$entity_route = $collection->get($route_name)) { | |
| continue; | |
| } | |
| $path = $entity_route->getPath(); | |
| $options = $entity_route->getOptions(); | |
| if ($bundle_entity_type = $entity_type->getBundleEntityType()) { | |
| $options['parameters'][$bundle_entity_type] = array( | |
| 'type' => 'entity:' . $bundle_entity_type, | |
| ); | |
| } | |
| // Special parameter used to easily recognize all Field UI routes. | |
| $options['_field_ui'] = TRUE; | |
| $defaults = array( | |
| 'entity_type_id' => $entity_type_id, | |
| ); | |
| // If the entity type has no bundles and it doesn't use {bundle} in its | |
| // admin path, use the entity type. | |
| if (strpos($path, '{bundle}') === FALSE) { | |
| $defaults['bundle'] = !$entity_type->hasKey('bundle') ? $entity_type_id : ''; | |
| } | |
| $route = new Route( | |
| "$path/fields/{field_config}", | |
| array( | |
| '_entity_form' => 'field_config.edit', | |
| '_title_callback' => '\Drupal\field_ui\Form\FieldConfigEditForm::getTitle', | |
| ) + $defaults, | |
| array('_entity_access' => 'field_config.update'), | |
| $options | |
| ); | |
| $collection->add("entity.field_config.{$entity_type_id}_field_edit_form", $route); | |
| $route = new Route( | |
| "$path/fields/{field_config}/storage", | |
| array('_entity_form' => 'field_storage_config.edit') + $defaults, | |
| array('_permission' => 'administer ' . $entity_type_id . ' fields'), | |
| $options | |
| ); | |
| $collection->add("entity.field_config.{$entity_type_id}_storage_edit_form", $route); | |
| $route = new Route( | |
| "$path/fields/{field_config}/delete", | |
| array('_entity_form' => 'field_config.delete') + $defaults, | |
| array('_entity_access' => 'field_config.delete'), | |
| $options | |
| ); | |
| $collection->add("entity.field_config.{$entity_type_id}_field_delete_form", $route); | |
| $route = new Route( | |
| "$path/fields", | |
| array( | |
| '_controller' => '\Drupal\field_ui\Controller\FieldConfigListController::listing', | |
| '_title' => 'Manage fields', | |
| ) + $defaults, | |
| array('_permission' => 'administer ' . $entity_type_id . ' fields'), | |
| $options | |
| ); | |
| $collection->add("entity.{$entity_type_id}.field_ui_fields", $route); | |
| $route = new Route( | |
| "$path/fields/add-field", | |
| array( | |
| '_form' => '\Drupal\field_ui\Form\FieldStorageAddForm', | |
| '_title' => 'Add field', | |
| ) + $defaults, | |
| array('_permission' => 'administer ' . $entity_type_id . ' fields'), | |
| $options | |
| ); | |
| $collection->add("field_ui.field_storage_config_add_$entity_type_id", $route); | |
| $route = new Route( | |
| "$path/form-display", | |
| array( | |
| '_entity_form' => 'entity_form_display.edit', | |
| '_title' => 'Manage form display', | |
| 'form_mode_name' => 'default', | |
| ) + $defaults, | |
| array('_field_ui_form_mode_access' => 'administer ' . $entity_type_id . ' form display'), | |
| $options | |
| ); | |
| $collection->add("entity.entity_form_display.{$entity_type_id}.default", $route); | |
| $route = new Route( | |
| "$path/form-display/{form_mode_name}", | |
| array( | |
| '_entity_form' => 'entity_form_display.edit', | |
| '_title' => 'Manage form display', | |
| ) + $defaults, | |
| array('_field_ui_form_mode_access' => 'administer ' . $entity_type_id . ' form display'), | |
| $options | |
| ); | |
| $collection->add("entity.entity_form_display.{$entity_type_id}.form_mode", $route); | |
| $route = new Route( | |
| "$path/display", | |
| array( | |
| '_entity_form' => 'entity_view_display.edit', | |
| '_title' => 'Manage display', | |
| 'view_mode_name' => 'default', | |
| ) + $defaults, | |
| array('_field_ui_view_mode_access' => 'administer ' . $entity_type_id . ' display'), | |
| $options | |
| ); | |
| $collection->add("entity.entity_view_display.{$entity_type_id}.default", $route); | |
| $route = new Route( | |
| "$path/display/{view_mode_name}", | |
| array( | |
| '_entity_form' => 'entity_view_display.edit', | |
| '_title' => 'Manage display', | |
| ) + $defaults, | |
| array('_field_ui_view_mode_access' => 'administer ' . $entity_type_id . ' display'), | |
| $options | |
| ); | |
| $collection->add("entity.entity_view_display.{$entity_type_id}.view_mode", $route); | |
| } | |
| } | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public static function getSubscribedEvents() { | |
| $events = parent::getSubscribedEvents(); | |
| $events[RoutingEvents::ALTER] = array('onAlterRoutes', -100); | |
| return $events; | |
| } | |
| } |