diff --git a/core/lib/Drupal/Core/Field/Annotation/FieldFormatter.php b/core/lib/Drupal/Core/Field/Annotation/FieldFormatter.php index 11f2246..37b9986 100644 --- a/core/lib/Drupal/Core/Field/Annotation/FieldFormatter.php +++ b/core/lib/Drupal/Core/Field/Annotation/FieldFormatter.php @@ -66,12 +66,4 @@ class FieldFormatter extends Plugin { */ public $field_types = array(); - /** - * An array whose keys are the names of the settings available to the - * formatter type, and whose values are the default values for those settings. - * - * @var array - */ - public $settings = array(); - } diff --git a/core/lib/Drupal/Core/Field/FormatterBase.php b/core/lib/Drupal/Core/Field/FormatterBase.php index 35bbf33..5a9b386 100644 --- a/core/lib/Drupal/Core/Field/FormatterBase.php +++ b/core/lib/Drupal/Core/Field/FormatterBase.php @@ -41,6 +41,13 @@ protected $viewMode; /** + * Denotes whether the plugin has an additional options form. + * + * @var bool + */ + protected $usesOptions = FALSE; + + /** * Constructs a FormatterBase object. * * @param string $plugin_id @@ -68,6 +75,20 @@ public function __construct($plugin_id, array $plugin_definition, FieldDefinitio /** * {@inheritdoc} */ + public static function defineOptions() { + return array(); + } + + /** + * Returns the usesOptions property. + */ + public function usesOptions() { + return $this->usesOptions; + } + + /** + * {@inheritdoc} + */ public function view(FieldItemListInterface $items) { $addition = array(); diff --git a/core/lib/Drupal/Core/Field/FormatterInterface.php b/core/lib/Drupal/Core/Field/FormatterInterface.php index fa63372..afc5515 100644 --- a/core/lib/Drupal/Core/Field/FormatterInterface.php +++ b/core/lib/Drupal/Core/Field/FormatterInterface.php @@ -13,6 +13,14 @@ interface FormatterInterface extends PluginSettingsInterface { /** + * Information about options for all kinds of purposes will be held here. + * + * @return array + * The options of this formatter plugin. + */ + public static function defineOptions(); + + /** * Returns a form to configure settings for the formatter. * * Invoked from \Drupal\field_ui\Form\FieldInstanceEditForm to allow diff --git a/core/lib/Drupal/Core/Field/FormatterPluginManager.php b/core/lib/Drupal/Core/Field/FormatterPluginManager.php index c30ab0e..79e7d52 100644 --- a/core/lib/Drupal/Core/Field/FormatterPluginManager.php +++ b/core/lib/Drupal/Core/Field/FormatterPluginManager.php @@ -196,8 +196,9 @@ public function getOptions($field_type = NULL) { * definition, or an empty array if type or settings are undefined. */ public function getDefaultSettings($type) { - $info = $this->getDefinition($type); - return isset($info['settings']) ? $info['settings'] : array(); + $plugin_definition = $this->getDefinition($type); + $plugin_class = DefaultFactory::getPluginClass($type, $plugin_definition); + return $plugin_class::defineOptions(); } } diff --git a/core/lib/Drupal/Core/Field/PluginSettingsBase.php b/core/lib/Drupal/Core/Field/PluginSettingsBase.php index 895563a..7d30ae4 100644 --- a/core/lib/Drupal/Core/Field/PluginSettingsBase.php +++ b/core/lib/Drupal/Core/Field/PluginSettingsBase.php @@ -8,6 +8,7 @@ namespace Drupal\Core\Field; use Drupal\Core\Plugin\PluginBase; +use Drupal\Component\Plugin\Factory\DefaultFactory; /** * Base class for the Field API plugins. @@ -65,7 +66,8 @@ protected function mergeDefaults() { */ public function getDefaultSettings() { $definition = $this->getPluginDefinition(); - return $definition['settings']; + $plugin_class = DefaultFactory::getPluginClass($this->getPluginId(), $definition); + return $plugin_class::defineOptions(); } /** diff --git a/core/lib/Drupal/Core/Field/WidgetBase.php b/core/lib/Drupal/Core/Field/WidgetBase.php index e73a34f..f1c4289 100644 --- a/core/lib/Drupal/Core/Field/WidgetBase.php +++ b/core/lib/Drupal/Core/Field/WidgetBase.php @@ -31,6 +31,13 @@ protected $settings; /** + * Denotes whether the plugin has an additional options form. + * + * @var bool + */ + protected $usesOptions = FALSE; + + /** * Constructs a WidgetBase object. * * @param array $plugin_id @@ -51,6 +58,20 @@ public function __construct($plugin_id, array $plugin_definition, FieldDefinitio /** * {@inheritdoc} */ + public static function defineOptions() { + return array(); + } + + /** + * Returns the usesOptions property. + */ + public function usesOptions() { + return $this->usesOptions; + } + + /** + * {@inheritdoc} + */ public function form(FieldItemListInterface $items, array &$form, array &$form_state, $get_delta = NULL) { $field_name = $this->fieldDefinition->getName(); $parents = $form['#parents']; diff --git a/core/lib/Drupal/Core/Field/WidgetInterface.php b/core/lib/Drupal/Core/Field/WidgetInterface.php index a05f1d4..38cb3f0 100644 --- a/core/lib/Drupal/Core/Field/WidgetInterface.php +++ b/core/lib/Drupal/Core/Field/WidgetInterface.php @@ -20,6 +20,14 @@ interface WidgetInterface extends WidgetBaseInterface { /** + * Information about options for all kinds of purposes will be held here. + * + * @return array + * The options of this widget plugin. + */ + public static function defineOptions(); + + /** * Returns a form to configure settings for the widget. * * Invoked from \Drupal\field_ui\Form\FieldInstanceEditForm to allow diff --git a/core/lib/Drupal/Core/Field/WidgetPluginManager.php b/core/lib/Drupal/Core/Field/WidgetPluginManager.php index 5ca455a..cf4c05c 100644 --- a/core/lib/Drupal/Core/Field/WidgetPluginManager.php +++ b/core/lib/Drupal/Core/Field/WidgetPluginManager.php @@ -200,8 +200,9 @@ public function getOptions($field_type = NULL) { * definition, or an empty array if type or settings are undefined. */ public function getDefaultSettings($type) { - $info = $this->getDefinition($type); - return isset($info['settings']) ? $info['settings'] : array(); + $plugin_definition = $this->getDefinition($type); + $plugin_class = DefaultFactory::getPluginClass($type, $plugin_definition); + return $plugin_class::defineOptions(); } } diff --git a/core/modules/comment/lib/Drupal/comment/Plugin/Field/FieldFormatter/CommentDefaultFormatter.php b/core/modules/comment/lib/Drupal/comment/Plugin/Field/FieldFormatter/CommentDefaultFormatter.php index 3250990..b69b9da 100644 --- a/core/modules/comment/lib/Drupal/comment/Plugin/Field/FieldFormatter/CommentDefaultFormatter.php +++ b/core/modules/comment/lib/Drupal/comment/Plugin/Field/FieldFormatter/CommentDefaultFormatter.php @@ -28,14 +28,22 @@ * }, * edit = { * "editor" = "disabled" - * }, - * settings = { - * "pager_id" = 0 * } * ) */ class CommentDefaultFormatter extends FormatterBase implements ContainerFactoryPluginInterface { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['pager_id'] = 0; + return $options; + } + /** * The comment storage controller. * diff --git a/core/modules/datetime/lib/Drupal/datetime/Plugin/Field/FieldFormatter/DateTimeDefaultFormatter.php b/core/modules/datetime/lib/Drupal/datetime/Plugin/Field/FieldFormatter/DateTimeDefaultFormatter.php index 1a235dc..2056313 100644 --- a/core/modules/datetime/lib/Drupal/datetime/Plugin/Field/FieldFormatter/DateTimeDefaultFormatter.php +++ b/core/modules/datetime/lib/Drupal/datetime/Plugin/Field/FieldFormatter/DateTimeDefaultFormatter.php @@ -24,14 +24,22 @@ * label = @Translation("Default"), * field_types = { * "datetime" - * }, - * settings = { - * "format_type" = "medium", * } * ) */ class DateTimeDefaultFormatter extends FormatterBase implements ContainerFactoryPluginInterface { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['format_type'] = 'medium'; + return $options; + } + /** * The date service. * diff --git a/core/modules/datetime/lib/Drupal/datetime/Plugin/Field/FieldWidget/DateTimeDatelistWidget.php b/core/modules/datetime/lib/Drupal/datetime/Plugin/Field/FieldWidget/DateTimeDatelistWidget.php index cbae23c..3c02a50 100644 --- a/core/modules/datetime/lib/Drupal/datetime/Plugin/Field/FieldWidget/DateTimeDatelistWidget.php +++ b/core/modules/datetime/lib/Drupal/datetime/Plugin/Field/FieldWidget/DateTimeDatelistWidget.php @@ -18,16 +18,24 @@ * label = @Translation("Select list"), * field_types = { * "datetime" - * }, - * settings = { - * "increment" = 15, - * "date_order" = "YMD", - * "time_type" = "24", * } * ) */ class DateTimeDatelistWidget extends WidgetBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['increment'] = '15'; + $options['date_order'] = 'YMD'; + $options['time_type'] = '24'; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/email/lib/Drupal/email/Plugin/Field/FieldWidget/EmailDefaultWidget.php b/core/modules/email/lib/Drupal/email/Plugin/Field/FieldWidget/EmailDefaultWidget.php index 62db527..5571535 100644 --- a/core/modules/email/lib/Drupal/email/Plugin/Field/FieldWidget/EmailDefaultWidget.php +++ b/core/modules/email/lib/Drupal/email/Plugin/Field/FieldWidget/EmailDefaultWidget.php @@ -18,14 +18,22 @@ * label = @Translation("E-mail"), * field_types = { * "email" - * }, - * settings = { - * "placeholder" = "" * } * ) */ class EmailDefaultWidget extends WidgetBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['placeholder'] = ''; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Field/FieldFormatter/EntityReferenceEntityFormatter.php b/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Field/FieldFormatter/EntityReferenceEntityFormatter.php index 40e3c39..1ea7112 100644 --- a/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Field/FieldFormatter/EntityReferenceEntityFormatter.php +++ b/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Field/FieldFormatter/EntityReferenceEntityFormatter.php @@ -19,15 +19,23 @@ * description = @Translation("Display the referenced entities rendered by entity_view()."), * field_types = { * "entity_reference" - * }, - * settings = { - * "view_mode" = "default", - * "link" = FALSE * } * ) */ class EntityReferenceEntityFormatter extends EntityReferenceFormatterBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['view_mode'] = 'default'; + $options['link'] = FALSE; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Field/FieldFormatter/EntityReferenceLabelFormatter.php b/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Field/FieldFormatter/EntityReferenceLabelFormatter.php index ea13e17..c088df5 100644 --- a/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Field/FieldFormatter/EntityReferenceLabelFormatter.php +++ b/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Field/FieldFormatter/EntityReferenceLabelFormatter.php @@ -18,14 +18,22 @@ * description = @Translation("Display the label of the referenced entities."), * field_types = { * "entity_reference" - * }, - * settings = { - * "link" = TRUE * } * ) */ class EntityReferenceLabelFormatter extends EntityReferenceFormatterBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['link'] = TRUE; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Field/FieldWidget/AutocompleteTagsWidget.php b/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Field/FieldWidget/AutocompleteTagsWidget.php index 2367fa1..a868131 100644 --- a/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Field/FieldWidget/AutocompleteTagsWidget.php +++ b/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Field/FieldWidget/AutocompleteTagsWidget.php @@ -17,17 +17,25 @@ * field_types = { * "entity_reference" * }, - * settings = { - * "match_operator" = "CONTAINS", - * "size" = 60, - * "autocomplete_type" = "tags", - * "placeholder" = "" - * }, * multiple_values = TRUE * ) */ class AutocompleteTagsWidget extends AutocompleteWidgetBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['match_operator'] = 'CONTAINS'; + $options['size'] = '60'; + $options['autocomplete_type'] = 'tags'; + $options['placeholder'] = ''; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Field/FieldWidget/AutocompleteWidget.php b/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Field/FieldWidget/AutocompleteWidget.php index 0898d68..d2ce307 100644 --- a/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Field/FieldWidget/AutocompleteWidget.php +++ b/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Field/FieldWidget/AutocompleteWidget.php @@ -23,17 +23,25 @@ * description = @Translation("An autocomplete text field."), * field_types = { * "entity_reference" - * }, - * settings = { - * "match_operator" = "CONTAINS", - * "size" = 60, - * "autocomplete_type" = "single", - * "placeholder" = "" * } * ) */ class AutocompleteWidget extends AutocompleteWidgetBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['match_operator'] = 'CONTAINS'; + $options['size'] = '60'; + $options['autocomplete_type'] = 'tags'; + $options['placeholder'] = ''; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldFormatter/TestFieldDefaultFormatter.php b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldFormatter/TestFieldDefaultFormatter.php index 457c76f..77e6917 100644 --- a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldFormatter/TestFieldDefaultFormatter.php +++ b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldFormatter/TestFieldDefaultFormatter.php @@ -19,14 +19,22 @@ * description = @Translation("Default formatter"), * field_types = { * "test_field" - * }, - * settings = { - * "test_formatter_setting" = "dummy test string" * } * ) */ class TestFieldDefaultFormatter extends FormatterBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['test_formatter_setting'] = 'dummy test string'; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldFormatter/TestFieldEmptyFormatter.php b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldFormatter/TestFieldEmptyFormatter.php index 592a958..064797a 100644 --- a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldFormatter/TestFieldEmptyFormatter.php +++ b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldFormatter/TestFieldEmptyFormatter.php @@ -18,14 +18,22 @@ * label = @Translation("Field empty test"), * field_types = { * "test_field", - * }, - * settings = { - * "test_empty_string" = "**EMPTY FIELD**" * } * ) */ class TestFieldEmptyFormatter extends FormatterBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['test_empty_string'] = '**EMPTY FIELD**'; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldFormatter/TestFieldEmptySettingFormatter.php b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldFormatter/TestFieldEmptySettingFormatter.php index e825aa8..85218fc 100644 --- a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldFormatter/TestFieldEmptySettingFormatter.php +++ b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldFormatter/TestFieldEmptySettingFormatter.php @@ -18,14 +18,22 @@ * label = @Translation("Field empty setting"), * field_types = { * "test_field", - * }, - * settings = { - * "field_empty_setting" = "" * } * ) */ class TestFieldEmptySettingFormatter extends FormatterBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['field_empty_setting'] = ''; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldFormatter/TestFieldMultipleFormatter.php b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldFormatter/TestFieldMultipleFormatter.php index 588ad66..da8ba58 100644 --- a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldFormatter/TestFieldMultipleFormatter.php +++ b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldFormatter/TestFieldMultipleFormatter.php @@ -19,14 +19,22 @@ * description = @Translation("Multiple formatter"), * field_types = { * "test_field" - * }, - * settings = { - * "test_formatter_setting_multiple" = "dummy test string" * } * ) */ class TestFieldMultipleFormatter extends FormatterBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['test_formatter_setting_multiple'] = 'dummy test string'; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldFormatter/TestFieldPrepareViewFormatter.php b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldFormatter/TestFieldPrepareViewFormatter.php index a8ff2a9..529876d 100644 --- a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldFormatter/TestFieldPrepareViewFormatter.php +++ b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldFormatter/TestFieldPrepareViewFormatter.php @@ -19,14 +19,22 @@ * description = @Translation("Tests prepareView() method"), * field_types = { * "test_field" - * }, - * settings = { - * "test_formatter_setting_additional" = "dummy test string" * } * ) */ class TestFieldPrepareViewFormatter extends FormatterBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['test_formatter_setting_additional'] = 'dummy test string'; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldWidget/TestFieldWidget.php b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldWidget/TestFieldWidget.php index bf6e093..1b3f428 100644 --- a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldWidget/TestFieldWidget.php +++ b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldWidget/TestFieldWidget.php @@ -20,14 +20,22 @@ * field_types = { * "test_field", * "hidden_test_field" - * }, - * settings = { - * "test_widget_setting" = "dummy test string" * } * ) */ class TestFieldWidget extends WidgetBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['test_widget_setting'] = 'dummy test string'; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldWidget/TestFieldWidgetMultiple.php b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldWidget/TestFieldWidgetMultiple.php index be8fed9..a44e4d2 100644 --- a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldWidget/TestFieldWidgetMultiple.php +++ b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldWidget/TestFieldWidgetMultiple.php @@ -22,14 +22,22 @@ * @FieldWidget( * id = "test_field_widget_multiple", * label = @Translation("Test widget - multiple"), - * settings = { - * "test_widget_setting_multiple" = "dummy test string" - * }, * multiple_values = TRUE * ) */ class TestFieldWidgetMultiple extends WidgetBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['test_widget_setting_multiple'] = 'dummy test string'; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/field_ui/lib/Drupal/field_ui/DisplayOverviewBase.php b/core/modules/field_ui/lib/Drupal/field_ui/DisplayOverviewBase.php index 2ed54e8..b855c0c 100644 --- a/core/modules/field_ui/lib/Drupal/field_ui/DisplayOverviewBase.php +++ b/core/modules/field_ui/lib/Drupal/field_ui/DisplayOverviewBase.php @@ -396,8 +396,7 @@ protected function buildFieldRow(FieldDefinitionInterface $field_definition, Ent } // Check selected plugin settings to display edit link or not. - $plugin_definition = $plugin->getPluginDefinition(); - if ($plugin_definition['settings']) { + if ($plugin->usesOptions()) { $field_row['settings_edit'] = $base_button + array( '#type' => 'image_button', '#name' => $field_name . '_settings_edit', diff --git a/core/modules/file/lib/Drupal/file/Plugin/Field/FieldWidget/FileWidget.php b/core/modules/file/lib/Drupal/file/Plugin/Field/FieldWidget/FileWidget.php index 5c976ed..1f23419 100644 --- a/core/modules/file/lib/Drupal/file/Plugin/Field/FieldWidget/FileWidget.php +++ b/core/modules/file/lib/Drupal/file/Plugin/Field/FieldWidget/FileWidget.php @@ -21,14 +21,22 @@ * label = @Translation("File"), * field_types = { * "file" - * }, - * settings = { - * "progress_indicator" = "throbber" * } * ) */ class FileWidget extends WidgetBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['progress_indicator'] = 'throbber'; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/image/lib/Drupal/image/Plugin/Field/FieldFormatter/ImageFormatter.php b/core/modules/image/lib/Drupal/image/Plugin/Field/FieldFormatter/ImageFormatter.php index 6a9a44e..58294c2 100644 --- a/core/modules/image/lib/Drupal/image/Plugin/Field/FieldFormatter/ImageFormatter.php +++ b/core/modules/image/lib/Drupal/image/Plugin/Field/FieldFormatter/ImageFormatter.php @@ -17,15 +17,23 @@ * label = @Translation("Image"), * field_types = { * "image" - * }, - * settings = { - * "image_style" = "", - * "image_link" = "" * } * ) */ class ImageFormatter extends ImageFormatterBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['image_style'] = ''; + $options['image_link'] = ''; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/image/lib/Drupal/image/Plugin/Field/FieldWidget/ImageWidget.php b/core/modules/image/lib/Drupal/image/Plugin/Field/FieldWidget/ImageWidget.php index 94528ae..cceb4a6 100644 --- a/core/modules/image/lib/Drupal/image/Plugin/Field/FieldWidget/ImageWidget.php +++ b/core/modules/image/lib/Drupal/image/Plugin/Field/FieldWidget/ImageWidget.php @@ -19,15 +19,23 @@ * label = @Translation("Image"), * field_types = { * "image" - * }, - * settings = { - * "progress_indicator" = "throbber", - * "preview_image_style" = "thumbnail", * } * ) */ class ImageWidget extends FileWidget { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['progress_indicator'] = 'throbber'; + $options['preview_image_style'] = 'thumbnail'; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/link/lib/Drupal/link/Plugin/Field/FieldFormatter/LinkFormatter.php b/core/modules/link/lib/Drupal/link/Plugin/Field/FieldFormatter/LinkFormatter.php index 111ce34..c266e05 100644 --- a/core/modules/link/lib/Drupal/link/Plugin/Field/FieldFormatter/LinkFormatter.php +++ b/core/modules/link/lib/Drupal/link/Plugin/Field/FieldFormatter/LinkFormatter.php @@ -20,18 +20,26 @@ * label = @Translation("Link"), * field_types = { * "link" - * }, - * settings = { - * "trim_length" = "80", - * "url_only" = "", - * "url_plain" = "", - * "rel" = "", - * "target" = "" * } * ) */ class LinkFormatter extends FormatterBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['trim_length'] = '80'; + $options['url_only'] = ''; + $options['url_plain'] = ''; + $options['rel'] = ''; + $options['target'] = ''; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/link/lib/Drupal/link/Plugin/Field/FieldFormatter/LinkSeparateFormatter.php b/core/modules/link/lib/Drupal/link/Plugin/Field/FieldFormatter/LinkSeparateFormatter.php index 4392123..84024ed 100644 --- a/core/modules/link/lib/Drupal/link/Plugin/Field/FieldFormatter/LinkSeparateFormatter.php +++ b/core/modules/link/lib/Drupal/link/Plugin/Field/FieldFormatter/LinkSeparateFormatter.php @@ -22,16 +22,24 @@ * label = @Translation("Separate link text and URL"), * field_types = { * "link" - * }, - * settings = { - * "trim_length" = "80", - * "rel" = "", - * "target" = "" * } * ) */ class LinkSeparateFormatter extends LinkFormatter { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['trim_length'] = '80'; + $options['rel'] = ''; + $options['target'] = ''; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/link/lib/Drupal/link/Plugin/Field/FieldWidget/LinkWidget.php b/core/modules/link/lib/Drupal/link/Plugin/Field/FieldWidget/LinkWidget.php index dc10574..cf0a3cd 100644 --- a/core/modules/link/lib/Drupal/link/Plugin/Field/FieldWidget/LinkWidget.php +++ b/core/modules/link/lib/Drupal/link/Plugin/Field/FieldWidget/LinkWidget.php @@ -18,15 +18,23 @@ * label = @Translation("Link"), * field_types = { * "link" - * }, - * settings = { - * "placeholder_url" = "", - * "placeholder_title" = "" * } * ) */ class LinkWidget extends WidgetBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['placeholder_url'] = ''; + $options['placeholder_title'] = ''; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldFormatter/NumberDecimalFormatter.php b/core/modules/number/lib/Drupal/number/Plugin/Field/FieldFormatter/NumberDecimalFormatter.php index 1fe9c72..1c0b701 100644 --- a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldFormatter/NumberDecimalFormatter.php +++ b/core/modules/number/lib/Drupal/number/Plugin/Field/FieldFormatter/NumberDecimalFormatter.php @@ -20,17 +20,25 @@ * field_types = { * "number_decimal", * "number_float" - * }, - * settings = { - * "thousand_separator" = "", - * "decimal_separator" = ".", - * "scale" = "2", - * "prefix_suffix" = "TRUE" * } * ) */ class NumberDecimalFormatter extends DefaultNumberFormatter { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['thousand_separator'] = ''; + $options['decimal_separator'] = '.'; + $options['scale'] = 2; + $options['prefix_suffix'] = TRUE; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldFormatter/NumberIntegerFormatter.php b/core/modules/number/lib/Drupal/number/Plugin/Field/FieldFormatter/NumberIntegerFormatter.php index 53ff874..b0902a9 100644 --- a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldFormatter/NumberIntegerFormatter.php +++ b/core/modules/number/lib/Drupal/number/Plugin/Field/FieldFormatter/NumberIntegerFormatter.php @@ -19,15 +19,23 @@ * label = @Translation("Default"), * field_types = { * "number_integer" - * }, - * settings = { - * "thousand_separator" = "", - * "prefix_suffix" = "TRUE" * } * ) */ class NumberIntegerFormatter extends DefaultNumberFormatter { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['thousand_separator'] = ''; + $options['prefix_suffix'] = TRUE; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldWidget/NumberWidget.php b/core/modules/number/lib/Drupal/number/Plugin/Field/FieldWidget/NumberWidget.php index 436e2cd..7423daa 100644 --- a/core/modules/number/lib/Drupal/number/Plugin/Field/FieldWidget/NumberWidget.php +++ b/core/modules/number/lib/Drupal/number/Plugin/Field/FieldWidget/NumberWidget.php @@ -21,14 +21,22 @@ * "number_integer", * "number_decimal", * "number_float" - * }, - * settings = { - * "placeholder" = "" * } * ) */ class NumberWidget extends WidgetBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['placeholder'] = ''; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/options/lib/Drupal/options/Plugin/Field/FieldWidget/OnOffWidget.php b/core/modules/options/lib/Drupal/options/Plugin/Field/FieldWidget/OnOffWidget.php index 34b741e..517a409 100644 --- a/core/modules/options/lib/Drupal/options/Plugin/Field/FieldWidget/OnOffWidget.php +++ b/core/modules/options/lib/Drupal/options/Plugin/Field/FieldWidget/OnOffWidget.php @@ -19,14 +19,22 @@ * field_types = { * "list_boolean" * }, - * settings = { - * "display_label" = FALSE, - * }, * multiple_values = TRUE * ) */ class OnOffWidget extends OptionsWidgetBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['display_label'] = FALSE; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/system/tests/modules/entity_test/entity_test.install b/core/modules/system/tests/modules/entity_test/entity_test.install index a03acf0..f480676 100644 --- a/core/modules/system/tests/modules/entity_test/entity_test.install +++ b/core/modules/system/tests/modules/entity_test/entity_test.install @@ -32,7 +32,7 @@ function entity_test_install() { ))->save(); entity_get_form_display($entity_type, $entity_type, 'default') - ->setComponent('field_test_text', array('type' => 'text_text')) + ->setComponent('field_test_text', array('type' => 'text_textfield')) ->save(); } } diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/Field/FieldWidget/TaxonomyAutocompleteWidget.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/Field/FieldWidget/TaxonomyAutocompleteWidget.php index 7c20732..4a6246f 100644 --- a/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/Field/FieldWidget/TaxonomyAutocompleteWidget.php +++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/Field/FieldWidget/TaxonomyAutocompleteWidget.php @@ -19,16 +19,24 @@ * field_types = { * "taxonomy_term_reference" * }, - * settings = { - * "size" = "60", - * "autocomplete_route_name" = "taxonomy.autocomplete", - * "placeholder" = "" - * }, * multiple_values = TRUE * ) */ class TaxonomyAutocompleteWidget extends WidgetBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['size'] = '60'; + $options['autocomplete_route_name'] = 'taxonomy.autocomplete'; + $options['placeholder'] = ''; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/telephone/lib/Drupal/telephone/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php b/core/modules/telephone/lib/Drupal/telephone/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php index 436a4fc..3b3a337 100644 --- a/core/modules/telephone/lib/Drupal/telephone/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php +++ b/core/modules/telephone/lib/Drupal/telephone/Plugin/Field/FieldFormatter/TelephoneLinkFormatter.php @@ -18,14 +18,22 @@ * label = @Translation("Telephone link"), * field_types = { * "telephone" - * }, - * settings = { - * "title" = "" * } * ) */ class TelephoneLinkFormatter extends FormatterBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['title'] = ''; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/telephone/lib/Drupal/telephone/Plugin/Field/FieldWidget/TelephoneDefaultWidget.php b/core/modules/telephone/lib/Drupal/telephone/Plugin/Field/FieldWidget/TelephoneDefaultWidget.php index 78c768e..e8eb0a6 100644 --- a/core/modules/telephone/lib/Drupal/telephone/Plugin/Field/FieldWidget/TelephoneDefaultWidget.php +++ b/core/modules/telephone/lib/Drupal/telephone/Plugin/Field/FieldWidget/TelephoneDefaultWidget.php @@ -18,14 +18,21 @@ * label = @Translation("Telephone number"), * field_types = { * "telephone" - * }, - * settings = { - * "placeholder" = "" * } * ) */ class TelephoneDefaultWidget extends WidgetBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['placeholder'] = ''; + return $options; + } /** * {@inheritdoc} diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextTrimmedFormatter.php b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextTrimmedFormatter.php index 8100e7b..88b7b13 100644 --- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextTrimmedFormatter.php +++ b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextTrimmedFormatter.php @@ -25,9 +25,6 @@ * "text_long", * "text_with_summary" * }, - * settings = { - * "trim_length" = "600" - * }, * edit = { * "editor" = "form" * } @@ -35,6 +32,17 @@ */ class TextTrimmedFormatter extends FormatterBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['trim_length'] = '600'; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldWidget/TextareaWidget.php b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldWidget/TextareaWidget.php index 9752a1f..67883ef 100644 --- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldWidget/TextareaWidget.php +++ b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldWidget/TextareaWidget.php @@ -19,15 +19,23 @@ * label = @Translation("Text area (multiple rows)"), * field_types = { * "text_long" - * }, - * settings = { - * "rows" = "5", - * "placeholder" = "" * } * ) */ class TextareaWidget extends WidgetBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['rows'] = '5'; + $options['placeholder'] = ''; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldWidget/TextareaWithSummaryWidget.php b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldWidget/TextareaWithSummaryWidget.php index 2490ed2..9e747e2 100644 --- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldWidget/TextareaWithSummaryWidget.php +++ b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldWidget/TextareaWithSummaryWidget.php @@ -19,16 +19,24 @@ * label = @Translation("Text area with a summary"), * field_types = { * "text_with_summary" - * }, - * settings = { - * "rows" = "9", - * "summary_rows" = "3", - * "placeholder" = "" * } * ) */ class TextareaWithSummaryWidget extends TextareaWidget { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['rows'] = '9'; + $options['summary_rows'] = '3'; + $options['placeholder'] = ''; + return $options; + } + /** * {@inheritdoc} */ diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldWidget/TextfieldWidget.php b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldWidget/TextfieldWidget.php index b35e633..c84e3bf 100644 --- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldWidget/TextfieldWidget.php +++ b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldWidget/TextfieldWidget.php @@ -19,15 +19,23 @@ * label = @Translation("Text field"), * field_types = { * "text" - * }, - * settings = { - * "size" = "60", - * "placeholder" = "" * } * ) */ class TextfieldWidget extends WidgetBase { + protected $usesOptions = TRUE; + + /** + * {@inheritdoc} + */ + public static function defineOptions() { + $options = parent::defineOptions(); + $options['size'] = '60'; + $options['placeholder'] = ''; + return $options; + } + /** * {@inheritdoc} */