diff -u b/src/Entity/MediaBundle.php b/src/Entity/MediaBundle.php --- b/src/Entity/MediaBundle.php +++ b/src/Entity/MediaBundle.php @@ -265,29 +265,33 @@ $entity_type = $field->getTargetEntityTypeId(); $bundle = $field->getTargetBundle(); - $plugin_definition = \Drupal::service('plugin.manager.field.field_type') - ->getDefinition($field->getType()); - if ($field->isDisplayConfigurable('form')) { $widget = \Drupal::service('plugin.manager.field.widget') - ->createInstance($plugin_definition['default_widget']) - ->getConfiguration(); + ->getInstance([ + 'field_definition' => $field, + 'form_mode' => 'default', + 'configuration' => [], + ]); entity_get_form_display($entity_type, $bundle, 'default') ->setComponent($field->getName(), [ 'type' => $widget->getPluginId(), - 'settings' => $widget->getConfiguration(), + 'settings' => $widget->getSettings(), ]) ->save(); } if ($field->isDisplayConfigurable('view')) { $formatter = \Drupal::service('plugin.manager.field.formatter') - ->createInstance($plugin_definition['default_formatter']); + ->getInstance([ + 'field_definition' => $field, + 'view_mode' => 'default', + 'configuration' => [], + ]); entity_get_display($entity_type, $bundle, 'default') ->setComponent($field->getName(), [ 'type' => $formatter->getPluginId(), - 'settings' => $formatter->getConfiguration(), + 'settings' => $formatter->getSettings(), ]) ->save(); } diff -u b/src/MediaTypeBase.php b/src/MediaTypeBase.php --- b/src/MediaTypeBase.php +++ b/src/MediaTypeBase.php @@ -217,18 +217,19 @@ * An appropriate field name that was determined to be available. */ protected function getSourceFieldName() { - $base_id = 'media.field_media_' . $this->getPluginId(); + $base_id = 'field_media_' . $this->getPluginId(); $tries = 0; $storage = $this->entityTypeManager->getStorage('field_storage_config'); // Iterate at least once, until no field with the generated ID is found. do { $id = $base_id; - // If we've tried before, increment and append suffix. + // If we've tried before, increment and append the suffix. if ($tries) { - $id .= '_' . ++$tries; + $id .= '_' . $tries; } - $field = $storage->load($id); + $field = $storage->load('media.' . $id); + $tries++; } while ($field); diff -u b/src/Plugin/MediaEntity/Type/Generic.php b/src/Plugin/MediaEntity/Type/Generic.php --- b/src/Plugin/MediaEntity/Type/Generic.php +++ b/src/Plugin/MediaEntity/Type/Generic.php @@ -43,6 +43,8 @@ * {@inheritdoc} */ public function buildConfigurationForm(array $form, FormStateInterface $form_state) { + $form = parent::buildConfigurationForm($form, $form_state); + $form['text'] = [ '#type' => 'markup', '#markup' => $this->t("This type provider doesn't need configuration."), diff -u b/tests/modules/media_entity_test_type/src/Plugin/MediaEntity/Type/TestType.php b/tests/modules/media_entity_test_type/src/Plugin/MediaEntity/Type/TestType.php --- b/tests/modules/media_entity_test_type/src/Plugin/MediaEntity/Type/TestType.php +++ b/tests/modules/media_entity_test_type/src/Plugin/MediaEntity/Type/TestType.php @@ -2,12 +2,7 @@ namespace Drupal\media_entity_test_type\Plugin\MediaEntity\Type; -use Drupal\Core\Entity\Entity\EntityFormDisplay; -use Drupal\Core\Entity\Entity\EntityViewDisplay; use Drupal\Core\Form\FormStateInterface; -use Drupal\field\Entity\FieldConfig; -use Drupal\field\Entity\FieldStorageConfig; -use Drupal\media_entity\MediaTypeSourceFieldTrait; use Drupal\media_entity\Plugin\MediaEntity\Type\Generic; /** @@ -20,20 +15,6 @@ * ) */ class TestType extends Generic { - use MediaTypeSourceFieldTrait; - - /** - * {@inheritdoc} - */ - public function sourceFieldInfo() { - return [ - 'allowed_types' => ['string'], - 'default_label' => $this->t('Test source'), - 'default_type' => 'string', - 'default_widget' => 'string_textfield', - 'default_formatter' => 'string', - ]; - } /** * {@inheritdoc} @@ -49,7 +30,7 @@ * {@inheritdoc} */ public function defaultConfiguration() { - return [ + return parent::defaultConfiguration() + [ 'test_config_value' => 'This is default value.', ]; } @@ -58,14 +39,14 @@ * {@inheritdoc} */ public function buildConfigurationForm(array $form, FormStateInterface $form_state) { + $form = parent::buildConfigurationForm($form, $form_state); + $form['test_config_value'] = [ '#type' => 'textfield', '#title' => $this->t('Test config value'), '#default_value' => empty($this->configuration['test_config_value']) ? NULL : $this->configuration['test_config_value'], ]; - $form = $this->sourceFieldConfigurationForm($form, $form_state); - $form['source_field']['#description'] = $this->t('Field on media entity that stores the source information.'); return $form;