diff --git a/core/lib/Drupal/Core/Entity/FieldableEntityStorageControllerBase.php b/core/lib/Drupal/Core/Entity/FieldableEntityStorageControllerBase.php index 5d01819..6180e6f 100644 --- a/core/lib/Drupal/Core/Entity/FieldableEntityStorageControllerBase.php +++ b/core/lib/Drupal/Core/Entity/FieldableEntityStorageControllerBase.php @@ -166,7 +166,7 @@ protected function loadFieldItems(array $entities) { foreach ($entity->getTranslationLanguages() as $langcode => $language) { $translation = $entity->getTranslation($langcode); foreach ($translation as $field_name => $items) { - if ($items->getFieldDefinition()->isConfigurable() && !$items->isEmpty()) { + if (!$items->isEmpty()) { foreach ($items as $delta => $item) { // If the field item needs to prepare the cache data, call the // corresponding method, otherwise use the values as cache diff --git a/core/lib/Drupal/Core/Field/FieldDefinition.php b/core/lib/Drupal/Core/Field/FieldDefinition.php index 46ad53d..3968624 100644 --- a/core/lib/Drupal/Core/Field/FieldDefinition.php +++ b/core/lib/Drupal/Core/Field/FieldDefinition.php @@ -306,13 +306,6 @@ public function isDisplayConfigurable($display_context) { /** * {@inheritdoc} */ - public function isConfigurable() { - return !empty($this->definition['no_ui']) && !empty($this->definition['default_widget']) && !empty($this->definition['default_formatter']); - } - - /** - * {@inheritdoc} - */ public function getDefaultValue(EntityInterface $entity) { return $this->getSetting('default_value'); } diff --git a/core/lib/Drupal/Core/Field/FieldDefinitionInterface.php b/core/lib/Drupal/Core/Field/FieldDefinitionInterface.php index c28f911..06de3c6 100644 --- a/core/lib/Drupal/Core/Field/FieldDefinitionInterface.php +++ b/core/lib/Drupal/Core/Field/FieldDefinitionInterface.php @@ -112,14 +112,6 @@ public function getSetting($setting_name); public function isTranslatable(); /** - * Returns whether the field is configurable via field.module. - * - * @return bool - * TRUE if the field is configurable. - */ - public function isConfigurable(); - - /** * Returns whether the display for the field can be configured. * * @param string $display_context diff --git a/core/lib/Drupal/Core/Field/FieldTypePluginManager.php b/core/lib/Drupal/Core/Field/FieldTypePluginManager.php index 74a884e..5fceb17 100644 --- a/core/lib/Drupal/Core/Field/FieldTypePluginManager.php +++ b/core/lib/Drupal/Core/Field/FieldTypePluginManager.php @@ -70,4 +70,14 @@ public function getDefaultInstanceSettings($type) { return isset($info['instance_settings']) ? $info['instance_settings'] : array(); } + /** + * {@inheritdoc} + */ + public function getUiDefinitions() { + $definitions = $this->getDefinitions(); + return array_filter($definitions, function ($definition) { + return empty($definition['no_ui']) && !empty($definition['default_formatter']) && !empty($definition['default_widget']); + }); + } + } diff --git a/core/lib/Drupal/Core/Field/FieldTypePluginManagerInterface.php b/core/lib/Drupal/Core/Field/FieldTypePluginManagerInterface.php index f3f40e8..c36447d 100644 --- a/core/lib/Drupal/Core/Field/FieldTypePluginManagerInterface.php +++ b/core/lib/Drupal/Core/Field/FieldTypePluginManagerInterface.php @@ -38,4 +38,12 @@ public function getDefaultInstanceSettings($type); */ public function getDefaultSettings($type); + /** + * Gets the definition of all field types that could be added via UI. + * + * @return array + * An array of field type definitions. + */ + public function getUiDefinitions(); + } diff --git a/core/modules/content_translation/content_translation.admin.inc b/core/modules/content_translation/content_translation.admin.inc index ef0e4ca..8e3cfb4 100644 --- a/core/modules/content_translation/content_translation.admin.inc +++ b/core/modules/content_translation/content_translation.admin.inc @@ -102,7 +102,7 @@ function _content_translation_form_language_content_settings_form_alter(array &$ // translation. // @todo Remove this special casing as soon as configurable and // base field definitions are "unified". - if ($definition->isConfigurable() && ($field = FieldService::fieldInfo()->getField($entity_type_id, $field_name))) { + if ($field = FieldService::fieldInfo()->getField($entity_type_id, $field_name)) { $instance = FieldService::fieldInfo()->getInstance($entity_type_id, $bundle, $field_name); $form['settings'][$entity_type_id][$bundle]['fields'][$field_name] = array( '#label' => $instance->getLabel(), diff --git a/core/modules/editor/editor.module b/core/modules/editor/editor.module index e3ff037..9d18021 100644 --- a/core/modules/editor/editor.module +++ b/core/modules/editor/editor.module @@ -10,7 +10,6 @@ use Drupal\editor\Entity\Editor; use Drupal\Component\Utility\NestedArray; use Drupal\Core\Entity\EntityInterface; -use Drupal\field\Field; use Drupal\filter\FilterFormatInterface; use Drupal\filter\Plugin\FilterInterface; @@ -556,22 +555,10 @@ function _editor_get_processed_text_fields(ContentEntityInterface $entity) { return array(); } - // Find all configurable fields, because only they could have a - // text_processing setting. - $configurable_fields = array_keys(array_filter($field_definitions, function ($definition) { - return $definition->isConfigurable(); - })); - if (empty($configurable_fields)) { - return array(); - } - // Only return fields that have text processing enabled. - return array_filter($configurable_fields, function ($field) use ($entity) { - $settings = Field::fieldInfo() - ->getInstance($entity->getEntityTypeId(), $entity->bundle(), $field) - ->getSettings(); - return isset($settings['text_processing']) && $settings['text_processing'] === TRUE; - }); + return array_keys(array_filter($field_definitions, function ($definition) { + return $definition->getSetting('text_processing') === TRUE; + })); } /** diff --git a/core/modules/field/field.deprecated.inc b/core/modules/field/field.deprecated.inc index 73a715c..f939d0e 100644 --- a/core/modules/field/field.deprecated.inc +++ b/core/modules/field/field.deprecated.inc @@ -335,8 +335,7 @@ function field_attach_form(EntityInterface $entity, &$form, &$form_state, $langc function field_attach_form_validate(ContentEntityInterface $entity, $form, &$form_state, array $options = array()) { $has_violations = FALSE; foreach ($entity as $field_name => $field) { - $definition = $field->getFieldDefinition(); - if ($definition->isConfigurable() && (empty($options['field_name']) || $options['field_name'] == $field_name)) { + if (empty($options['field_name']) || $options['field_name'] == $field_name) { $field_violations = $field->validate(); if (count($field_violations)) { $has_violations = TRUE; diff --git a/core/modules/field/lib/Drupal/field/Entity/FieldConfig.php b/core/modules/field/lib/Drupal/field/Entity/FieldConfig.php index 81d488c..e4eeaa4 100644 --- a/core/modules/field/lib/Drupal/field/Entity/FieldConfig.php +++ b/core/modules/field/lib/Drupal/field/Entity/FieldConfig.php @@ -608,13 +608,6 @@ public function getDefaultValue(EntityInterface $entity) { } /** * {@inheritdoc} */ - public function isConfigurable() { - return TRUE; - } - - /** - * {@inheritdoc} - */ public function isDisplayConfigurable($context) { return TRUE; } diff --git a/core/modules/field/lib/Drupal/field/Entity/FieldInstanceConfig.php b/core/modules/field/lib/Drupal/field/Entity/FieldInstanceConfig.php index bd9586c..12920be 100644 --- a/core/modules/field/lib/Drupal/field/Entity/FieldInstanceConfig.php +++ b/core/modules/field/lib/Drupal/field/Entity/FieldInstanceConfig.php @@ -564,13 +564,6 @@ public function getDefaultValue(EntityInterface $entity) { /** * {@inheritdoc} */ - public function isConfigurable() { - return TRUE; - } - - /** - * {@inheritdoc} - */ public function isDisplayConfigurable($context) { return TRUE; } diff --git a/core/modules/field_ui/lib/Drupal/field_ui/FieldOverview.php b/core/modules/field_ui/lib/Drupal/field_ui/FieldOverview.php index ba359cf..e253a8b 100644 --- a/core/modules/field_ui/lib/Drupal/field_ui/FieldOverview.php +++ b/core/modules/field_ui/lib/Drupal/field_ui/FieldOverview.php @@ -89,7 +89,7 @@ public function buildForm(array $form, array &$form_state, $entity_type_id = NUL // Gather bundle information. $instances = field_info_instances($this->entity_type, $this->bundle); - $field_types = $this->fieldTypeManager->getDefinitions(); + $field_types = $this->fieldTypeManager->getUiDefinitions(); // Field prefix. $field_prefix = \Drupal::config('field_ui.settings')->get('field_prefix'); @@ -180,10 +180,7 @@ public function buildForm(array $form, array &$form_state, $entity_type_id = NUL // Gather valid field types. $field_type_options = array(); foreach ($field_types as $name => $field_type) { - // Skip field types which should not be added via user interface. - if (empty($field_type['no_ui'])) { - $field_type_options[$name] = $field_type['label']; - } + $field_type_options[$name] = $field_type['label']; } asort($field_type_options); diff --git a/core/tests/Drupal/Tests/Core/Entity/FieldDefinitionTest.php b/core/tests/Drupal/Tests/Core/Entity/FieldDefinitionTest.php index 309d99a..5ddd924 100644 --- a/core/tests/Drupal/Tests/Core/Entity/FieldDefinitionTest.php +++ b/core/tests/Drupal/Tests/Core/Entity/FieldDefinitionTest.php @@ -194,12 +194,4 @@ public function testFieldRequired() { $this->assertFalse($definition->isRequired()); } - /** - * Tests configurable. - */ - public function testFieldConfigurable() { - $definition = FieldDefinition::create($this->fieldType); - $this->assertFalse($definition->isConfigurable()); - } - }