routeProvider = $route_provider; $this->entityManager = $entity_manager; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container, $base_plugin_id) { return new static( $container->get('router.route_provider'), $container->get('entity.manager') ); } /** * {@inheritdoc} */ public function getDerivativeDefinitions($base_plugin_definition) { $this->derivatives = []; foreach ($this->entityManager->getDefinitions() as $entity_type_id => $entity_type) { if ($entity_type->get('field_ui_base_route')) { $this->derivatives["field_storage_config_add_$entity_type_id"] = [ 'route_name' => "field_ui.field_storage_config_add_$entity_type_id", 'title' => $this->t('Add field'), 'appears_on' => ["entity.$entity_type_id.field_ui_fields"], ]; } } foreach ($this->derivatives as &$entry) { $entry += $base_plugin_definition; } return $this->derivatives; } }