diff --git a/core/lib/Drupal/Core/Field/Annotation/FieldFormatter.php b/core/lib/Drupal/Core/Field/Annotation/FieldFormatter.php index fc4a4c4..067f54d 100644 --- a/core/lib/Drupal/Core/Field/Annotation/FieldFormatter.php +++ b/core/lib/Drupal/Core/Field/Annotation/FieldFormatter.php @@ -67,14 +67,6 @@ 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(); - - /** * An integer to determine the weight of this formatter relative to other * formatter in the Field UI when selecting a formatter for a given field * instance. diff --git a/core/lib/Drupal/Core/Field/Annotation/FieldType.php b/core/lib/Drupal/Core/Field/Annotation/FieldType.php index 5bf9bb1..276cd0b 100644 --- a/core/lib/Drupal/Core/Field/Annotation/FieldType.php +++ b/core/lib/Drupal/Core/Field/Annotation/FieldType.php @@ -52,33 +52,6 @@ class FieldType extends DataType { public $description; /** - * An array of field-level settings available for the field type. - * - * Keys are the names of the settings, and values are the default values for - * those settings. - * - * @var array - */ - public $settings; - - /** - * An array of instance-level settings available for the field type. - * - * Keys are the names of the settings, and values are the default values for - * those settings. - * - * Instance-level settings can have different values on each field instance, - * and thus allow greater flexibility than field-level settings. It is - * recommended to put settings at the instance level whenever possible. - * Notable exceptions: settings acting on the storage schema, or settings that - * Views needs to use across field instances (for example, settings defining - * the list of allowed values for the field). - * - * @var array - */ - public $instance_settings; - - /** * The plugin_id of the default widget for this field type. * * This widget must be available whenever the field type is available (i.e. diff --git a/core/lib/Drupal/Core/Field/Annotation/FieldWidget.php b/core/lib/Drupal/Core/Field/Annotation/FieldWidget.php index 982c92e..0f3535d 100644 --- a/core/lib/Drupal/Core/Field/Annotation/FieldWidget.php +++ b/core/lib/Drupal/Core/Field/Annotation/FieldWidget.php @@ -66,14 +66,6 @@ class FieldWidget extends Plugin { public $field_types = array(); /** - * An array whose keys are the names of the settings available to the widget - * type, and whose values are the default values for those settings. - * - * @var array - */ - public $settings = array(); - - /** * Does the field widget handles multiple values at once. * * @var bool diff --git a/core/lib/Drupal/Core/Field/FieldItemBase.php b/core/lib/Drupal/Core/Field/FieldItemBase.php index fce6089..33ec95c 100644 --- a/core/lib/Drupal/Core/Field/FieldItemBase.php +++ b/core/lib/Drupal/Core/Field/FieldItemBase.php @@ -26,6 +26,20 @@ /** * {@inheritdoc} */ + public static function defaultSettings() { + return array(); + } + + /** + * {@inheritdoc} + */ + public static function defaultInstanceSettings() { + return array(); + } + + /** + * {@inheritdoc} + */ public static function mainPropertyName() { return 'value'; } diff --git a/core/lib/Drupal/Core/Field/FieldItemInterface.php b/core/lib/Drupal/Core/Field/FieldItemInterface.php index ae7bf6c..58d816c 100644 --- a/core/lib/Drupal/Core/Field/FieldItemInterface.php +++ b/core/lib/Drupal/Core/Field/FieldItemInterface.php @@ -213,6 +213,22 @@ public function delete(); public function deleteRevision(); /** + * Defines the field-level settings for this plugin. + * + * @return array + * A list of default settings, keyed by the setting name. + */ + public static function defaultSettings(); + + /** + * Defines the instance-level settings for this plugin. + * + * @return array + * A list of default settings, keyed by the setting name. + */ + public static function defaultInstanceSettings(); + + /** * Returns a form for the field-level settings. * * Invoked from \Drupal\field_ui\Form\FieldEditForm to allow administrators to diff --git a/core/lib/Drupal/Core/Field/FieldTypePluginManager.php b/core/lib/Drupal/Core/Field/FieldTypePluginManager.php index 5fceb17..07aaceb 100644 --- a/core/lib/Drupal/Core/Field/FieldTypePluginManager.php +++ b/core/lib/Drupal/Core/Field/FieldTypePluginManager.php @@ -7,6 +7,7 @@ namespace Drupal\Core\Field; +use Drupal\Component\Plugin\Factory\DefaultFactory; use Drupal\Core\Cache\CacheBackendInterface; use Drupal\Core\Extension\ModuleHandlerInterface; use Drupal\Core\Language\LanguageManager; @@ -18,14 +19,6 @@ class FieldTypePluginManager extends DefaultPluginManager implements FieldTypePluginManagerInterface { /** - * {@inheritdoc} - */ - protected $defaults = array( - 'settings' => array(), - 'instance_settings' => array(), - ); - - /** * Constructs the FieldTypePluginManager object * * @param \Traversable $namespaces @@ -58,16 +51,24 @@ public function processDefinition(&$definition, $plugin_id) { * {@inheritdoc} */ public function getDefaultSettings($type) { - $info = $this->getDefinition($type); - return isset($info['settings']) ? $info['settings'] : array(); + $plugin_definition = $this->getDefinition($type); + if (!empty($plugin_definition['class'])) { + $plugin_class = DefaultFactory::getPluginClass($type, $plugin_definition); + return $plugin_class::defaultSettings(); + } + return array(); } /** * {@inheritdoc} */ public function getDefaultInstanceSettings($type) { - $info = $this->getDefinition($type); - return isset($info['instance_settings']) ? $info['instance_settings'] : array(); + $plugin_definition = $this->getDefinition($type); + if (!empty($plugin_definition['class'])) { + $plugin_class = DefaultFactory::getPluginClass($type, $plugin_definition); + return $plugin_class::defaultInstanceSettings(); + } + return array(); } /** diff --git a/core/lib/Drupal/Core/Field/FormatterPluginManager.php b/core/lib/Drupal/Core/Field/FormatterPluginManager.php index b39a822..85e9589 100644 --- a/core/lib/Drupal/Core/Field/FormatterPluginManager.php +++ b/core/lib/Drupal/Core/Field/FormatterPluginManager.php @@ -201,8 +201,12 @@ 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); + if (!empty($plugin_definition['class'])) { + $plugin_class = DefaultFactory::getPluginClass($type, $plugin_definition); + return $plugin_class::defaultSettings(); + } + return array(); } } diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/DecimalFormatter.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/DecimalFormatter.php index ae595d0..4a0436b 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/DecimalFormatter.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/DecimalFormatter.php @@ -20,12 +20,6 @@ * field_types = { * "decimal", * "float" - * }, - * settings = { - * "thousand_separator" = "", - * "decimal_separator" = ".", - * "scale" = "2", - * "prefix_suffix" = "TRUE" * } * ) */ @@ -34,6 +28,18 @@ class DecimalFormatter extends NumericFormatterBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'thousand_separator' => '', + 'decimal_separator' => '.', + 'scale' => 2, + 'prefix_suffix' => TRUE, + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $elements = parent::settingsForm($form, $form_state); diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/IntegerFormatter.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/IntegerFormatter.php index 7849031..8768474 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/IntegerFormatter.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/IntegerFormatter.php @@ -19,10 +19,6 @@ * label = @Translation("Default"), * field_types = { * "integer" - * }, - * settings = { - * "thousand_separator" = "", - * "prefix_suffix" = "TRUE" * } * ) */ @@ -31,6 +27,16 @@ class IntegerFormatter extends NumericFormatterBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'thousand_separator' => '', + 'prefix_suffix' => TRUE, + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ protected function numberFormat($number) { return number_format($number, 0, '', $this->getSetting('thousand_separator')); } diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/DecimalItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/DecimalItem.php index 0d8dee4..cbb79d8 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/DecimalItem.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/DecimalItem.php @@ -17,16 +17,6 @@ * id = "decimal", * label = @Translation("Number (decimal)"), * description = @Translation("This field stores a number in the database in a fixed decimal format."), - * settings = { - * "precision" = "10", - * "scale" = "2" - * }, - * instance_settings = { - * "min" = "", - * "max" = "", - * "prefix" = "", - * "suffix" = "" - * }, * default_widget = "number", * default_formatter = "number_decimal" * ) @@ -36,6 +26,16 @@ class DecimalItem extends NumericItemBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'precision' => 10, + 'scale' => 2, + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public static function propertyDefinitions(FieldDefinitionInterface $field_definition) { $properties['value'] = DataDefinition::create('string') ->setLabel(t('Decimal value')); diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EntityReferenceItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EntityReferenceItem.php index 788da68..a56b406 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EntityReferenceItem.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EntityReferenceItem.php @@ -35,6 +35,25 @@ class EntityReferenceItem extends FieldItemBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'target_type' => \Drupal::moduleHandler()->moduleExists('node') ? 'node' : 'user', + 'target_bundle' => NULL, + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ + public static function defaultInstanceSettings() { + return array( + 'handler' => 'default', + ) + parent::defaultInstanceSettings(); + } + + /** + * {@inheritdoc} + */ public static function propertyDefinitions(FieldDefinitionInterface $field_definition) { $settings = $field_definition->getSettings(); $target_type_info = \Drupal::entityManager()->getDefinition($settings['target_type']); diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/FloatItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/FloatItem.php index 2d9511b..eda49cc 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/FloatItem.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/FloatItem.php @@ -17,12 +17,6 @@ * id = "float", * label = @Translation("Number (float)"), * description = @Translation("This field stores a number in the database in a floating point format."), - * instance_settings = { - * "min" = "", - * "max" = "", - * "prefix" = "", - * "suffix" = "" - * }, * default_widget = "number", * default_formatter = "number_decimal" * ) diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/IntegerItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/IntegerItem.php index 31f3bc6..f22e060 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/IntegerItem.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/IntegerItem.php @@ -17,12 +17,6 @@ * id = "integer", * label = @Translation("Number (integer)"), * description = @Translation("This field stores a number in the database as an integer."), - * instance_settings = { - * "min" = "", - * "max" = "", - * "prefix" = "", - * "suffix" = "" - * }, * default_widget = "number", * default_formatter = "number_integer" * ) diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/NumericItemBase.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/NumericItemBase.php index c1270c4..32d63ec 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/NumericItemBase.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/NumericItemBase.php @@ -17,6 +17,18 @@ /** * {@inheritdoc} */ + public static function defaultInstanceSettings() { + $settings = parent::defaultInstanceSettings(); + $settings['min'] = ''; + $settings['max'] = ''; + $settings['prefix'] = ''; + $settings['suffix'] = ''; + return $settings; + } + + /** + * {@inheritdoc} + */ public function instanceSettingsForm(array $form, array &$form_state) { $element = array(); $settings = $this->getSettings(); diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StringItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StringItem.php index c20e2e9..1dfd9f4 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StringItem.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/StringItem.php @@ -18,9 +18,6 @@ * id = "string", * label = @Translation("String"), * description = @Translation("An entity field containing a string value."), - * settings = { - * "max_length" = "255" - * }, * no_ui = TRUE, * default_widget = "string", * default_formatter = "string" @@ -31,6 +28,15 @@ class StringItem extends FieldItemBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'max_length' => 255, + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public static function propertyDefinitions(FieldDefinitionInterface $field_definition) { $properties['value'] = DataDefinition::create('string') ->setLabel(t('Text value')); diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/UriItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/UriItem.php index d1a69af..d74a85a 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/UriItem.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/UriItem.php @@ -21,9 +21,6 @@ * id = "uri", * label = @Translation("URI"), * description = @Translation("An entity field containing a URI."), - * settings = { - * "max_length" = "2048" - * }, * no_ui = TRUE * ) */ @@ -32,6 +29,15 @@ class UriItem extends StringItem { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'max_length' => 2048, + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public static function propertyDefinitions(FieldDefinitionInterface $field_definition) { $properties['value'] = DataDefinition::create('uri') ->setLabel(t('URI value')); diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/UuidItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/UuidItem.php index 90b0bca..15cbe74 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/UuidItem.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/UuidItem.php @@ -16,9 +16,6 @@ * id = "uuid", * label = @Translation("UUID"), * description = @Translation("An entity field containing a UUID."), - * settings = { - * "max_length" = "128" - * }, * no_ui = TRUE * ) */ @@ -27,6 +24,15 @@ class UuidItem extends StringItem { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'max_length' => 128, + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function applyDefaultValue($notify = TRUE) { // Default to one field item with a generated UUID. $uuid = \Drupal::service('uuid'); diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/EmailDefaultWidget.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/EmailDefaultWidget.php index c273bd8..889fbab 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/EmailDefaultWidget.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/EmailDefaultWidget.php @@ -18,9 +18,6 @@ * label = @Translation("E-mail"), * field_types = { * "email" - * }, - * settings = { - * "placeholder" = "" * } * ) */ @@ -29,6 +26,15 @@ class EmailDefaultWidget extends WidgetBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'placeholder' => '', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $element['placeholder'] = array( '#type' => 'textfield', diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/NumberWidget.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/NumberWidget.php index 82c8d37..fa31ce7 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/NumberWidget.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/NumberWidget.php @@ -21,9 +21,6 @@ * "integer", * "decimal", * "float" - * }, - * settings = { - * "placeholder" = "" * } * ) */ @@ -32,6 +29,15 @@ class NumberWidget extends WidgetBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'placeholder' => '', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $element['placeholder'] = array( '#type' => 'textfield', diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/StringWidget.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/StringWidget.php index 524e89d..ed1d928 100644 --- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/StringWidget.php +++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/StringWidget.php @@ -18,10 +18,6 @@ * label = @Translation("String field"), * field_types = { * "string" - * }, - * settings = { - * "size" = "60", - * "placeholder" = "" * } * ) */ @@ -30,6 +26,16 @@ class StringWidget extends WidgetBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'size' => 60, + 'placeholder' => '', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $element['size'] = array( '#type' => 'number', diff --git a/core/lib/Drupal/Core/Field/PluginSettingsBase.php b/core/lib/Drupal/Core/Field/PluginSettingsBase.php index 895563a..fb8e07b 100644 --- a/core/lib/Drupal/Core/Field/PluginSettingsBase.php +++ b/core/lib/Drupal/Core/Field/PluginSettingsBase.php @@ -31,7 +31,14 @@ protected $defaultSettingsMerged = FALSE; /** - * Implements Drupal\field\Plugin\PluginSettingsInterface::getSettings(). + * {@inheritdoc} + */ + public static function defaultSettings() { + return array(); + } + + /** + * {@inheritdoc} */ public function getSettings() { // Merge defaults before returning the array. @@ -42,7 +49,7 @@ public function getSettings() { } /** - * Implements Drupal\field\Plugin\PluginSettingsInterface::getSetting(). + * {@inheritdoc} */ public function getSetting($key) { // Merge defaults if we have no value for the key. @@ -56,20 +63,12 @@ public function getSetting($key) { * Merges default settings values into $settings. */ protected function mergeDefaults() { - $this->settings += $this->getDefaultSettings(); + $this->settings += static::defaultSettings(); $this->defaultSettingsMerged = TRUE; } /** - * Implements Drupal\field\Plugin\PluginSettingsInterface::getDefaultSettings(). - */ - public function getDefaultSettings() { - $definition = $this->getPluginDefinition(); - return $definition['settings']; - } - - /** - * Implements Drupal\field\Plugin\PluginSettingsInterface::setSettings(). + * {@inheritdoc} */ public function setSettings(array $settings) { $this->settings = $settings; @@ -78,7 +77,7 @@ public function setSettings(array $settings) { } /** - * Implements Drupal\field\Plugin\PluginSettingsInterface::setSetting(). + * {@inheritdoc} */ public function setSetting($key, $value) { $this->settings[$key] = $value; diff --git a/core/lib/Drupal/Core/Field/PluginSettingsInterface.php b/core/lib/Drupal/Core/Field/PluginSettingsInterface.php index d7ffc47..9f9b7c6 100644 --- a/core/lib/Drupal/Core/Field/PluginSettingsInterface.php +++ b/core/lib/Drupal/Core/Field/PluginSettingsInterface.php @@ -15,6 +15,14 @@ interface PluginSettingsInterface extends PluginInspectionInterface { /** + * Defines the default settings for this plugin. + * + * @return array + * A list of default settings, keyed by the setting name. + */ + public static function defaultSettings(); + + /** * Returns the array of settings, including defaults for missing settings. * * @return array @@ -34,22 +42,13 @@ public function getSettings(); public function getSetting($key); /** - * Returns the default settings for the plugin. - * - * @return array - * The array of default setting values, keyed by setting names. - */ - public function getDefaultSettings(); - - /** * Sets the settings for the plugin. * * @param array $settings * The array of settings, keyed by setting names. Missing settings will be * assigned their default values. * - * @return \Drupal\field\Plugin\PluginSettingsInterface - * The plugin itself. + * @return $this */ public function setSettings(array $settings); @@ -61,8 +60,7 @@ public function setSettings(array $settings); * @param mixed $value * The setting value. * - * @return \Drupal\field\Plugin\PluginSettingsInterface - * The plugin itself. + * @return $this */ public function setSetting($key, $value); diff --git a/core/lib/Drupal/Core/Field/WidgetPluginManager.php b/core/lib/Drupal/Core/Field/WidgetPluginManager.php index 366f010..4b60213 100644 --- a/core/lib/Drupal/Core/Field/WidgetPluginManager.php +++ b/core/lib/Drupal/Core/Field/WidgetPluginManager.php @@ -203,8 +203,13 @@ 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); + if (!empty($plugin_definition['class'])) { + $plugin_class = DefaultFactory::getPluginClass($type, $plugin_definition); + return $plugin_class::defaultSettings(); + } + + return array(); } } diff --git a/core/modules/block/lib/Drupal/block/Plugin/views/display/Block.php b/core/modules/block/lib/Drupal/block/Plugin/views/display/Block.php index 94bea95..9ee2ca9 100644 --- a/core/modules/block/lib/Drupal/block/Plugin/views/display/Block.php +++ b/core/modules/block/lib/Drupal/block/Plugin/views/display/Block.php @@ -65,7 +65,7 @@ protected function defineOptions() { * * @return array * An array of block-specific settings to override the defaults provided in - * \Drupal\views\Plugin\Block\ViewsBlock::settings(). + * \Drupal\views\Plugin\Block\ViewsBlock::defaultConfiguration(). * * @see \Drupal\views\Plugin\Block\ViewsBlock::defaultConfiguration() */ 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 bf4979b..16521b5 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 @@ -29,15 +29,21 @@ * }, * edit = { * "editor" = "disabled" - * }, - * settings = { - * "pager_id" = 0 * } * ) */ class CommentDefaultFormatter extends FormatterBase implements ContainerFactoryPluginInterface { /** + * {@inheritdoc} + */ + public static function defaultSettings() { + return array( + 'pager_id' => 0, + ) + parent::defaultSettings(); + } + + /** * The comment storage controller. * * @var \Drupal\comment\CommentStorageControllerInterface diff --git a/core/modules/comment/lib/Drupal/comment/Plugin/Field/FieldType/CommentItem.php b/core/modules/comment/lib/Drupal/comment/Plugin/Field/FieldType/CommentItem.php index 115bce2..477ca36 100644 --- a/core/modules/comment/lib/Drupal/comment/Plugin/Field/FieldType/CommentItem.php +++ b/core/modules/comment/lib/Drupal/comment/Plugin/Field/FieldType/CommentItem.php @@ -18,17 +18,6 @@ * id = "comment", * label = @Translation("Comments"), * description = @Translation("This field manages configuration and presentation of comments on an entity."), - * settings = { - * "description" = "", - * }, - * instance_settings = { - * "default_mode" = COMMENT_MODE_THREADED, - * "per_page" = 50, - * "form_location" = COMMENT_FORM_BELOW, - * "anonymous" = COMMENT_ANONYMOUS_MAYNOT_CONTACT, - * "subject" = 1, - * "preview" = DRUPAL_OPTIONAL, - * }, * default_widget = "comment_default", * default_formatter = "comment_default" * ) @@ -38,6 +27,29 @@ class CommentItem extends FieldItemBase implements CommentItemInterface { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'description' => '', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ + public static function defaultInstanceSettings() { + return array( + 'default_mode' => COMMENT_MODE_THREADED, + 'per_page' => 50, + 'form_location' => COMMENT_FORM_BELOW, + 'anonymous' => COMMENT_ANONYMOUS_MAYNOT_CONTACT, + 'subject' => 1, + 'preview' => DRUPAL_OPTIONAL, + ) + parent::defaultInstanceSettings(); + } + + /** + * {@inheritdoc} + */ public static function propertyDefinitions(FieldDefinitionInterface $field_definition) { $properties['status'] = DataDefinition::create('integer') ->setLabel(t('Comment status value')); diff --git a/core/modules/content_translation/content_translation.module b/core/modules/content_translation/content_translation.module index 95cd875..27ae6b7 100644 --- a/core/modules/content_translation/content_translation.module +++ b/core/modules/content_translation/content_translation.module @@ -790,21 +790,19 @@ function content_translation_form_field_ui_field_instance_edit_form_alter(array } /** - * Implements hook_field_info_alter(). - */ -function content_translation_field_info_alter(&$info) { - foreach ($info as &$field_type_info) { - // By default no column has to be synchronized. - $field_type_info['settings'] += array('translation_sync' => FALSE); - // Synchronization can be enabled per instance. - $field_type_info['instance_settings'] += array('translation_sync' => FALSE); - } -} - -/** * Implements hook_entity_presave(). */ function content_translation_entity_presave(EntityInterface $entity) { + // By default no column has to be synchronized. + // @todo Replace with own storage in https://drupal.org/node/2224761 + if ($entity->getEntityTypeId() === 'field_config') { + $entity->settings += array('translation_sync' => FALSE); + } + // Synchronization can be enabled per instance. + // @todo Replace with own storage in https://drupal.org/node/2224761 + if ($entity->getEntityTypeId() === 'field_instance_config') { + $entity->settings += array('translation_sync' => FALSE); + } if ($entity instanceof ContentEntityInterface && $entity->isTranslatable()) { // @todo Avoid using request attributes once translation metadata become // regular fields. 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 754ffc0..3680072 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,15 +24,21 @@ * label = @Translation("Default"), * field_types = { * "datetime" - * }, - * settings = { - * "format_type" = "medium", * } * ) */ class DateTimeDefaultFormatter extends FormatterBase implements ContainerFactoryPluginInterface { /** + * {@inheritdoc} + */ + public static function defaultSettings() { + return array( + 'format_type' => 'medium', + ) + parent::defaultSettings(); + } + + /** * The date service. * * @var \Drupal\Core\Datetime\Date diff --git a/core/modules/datetime/lib/Drupal/datetime/Plugin/Field/FieldType/DateTimeItem.php b/core/modules/datetime/lib/Drupal/datetime/Plugin/Field/FieldType/DateTimeItem.php index 6119730..e600079 100644 --- a/core/modules/datetime/lib/Drupal/datetime/Plugin/Field/FieldType/DateTimeItem.php +++ b/core/modules/datetime/lib/Drupal/datetime/Plugin/Field/FieldType/DateTimeItem.php @@ -19,9 +19,6 @@ * id = "datetime", * label = @Translation("Date"), * description = @Translation("Create and store date values."), - * settings = { - * "datetime_type" = "datetime" - * }, * default_widget = "datetime_default", * default_formatter = "datetime_default", * list_class = "\Drupal\datetime\Plugin\Field\FieldType\DateTimeFieldItemList" @@ -30,6 +27,15 @@ class DateTimeItem extends FieldItemBase implements PrepareCacheInterface { /** + * {@inheritdoc} + */ + public static function defaultSettings() { + return array( + 'datetime_type' => 'datetime', + ) + parent::defaultSettings(); + } + + /** * Value for the 'datetime_type' setting: store only a date. */ const DATETIME_TYPE_DATE = 'date'; 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..c9c3195 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,11 +18,6 @@ * label = @Translation("Select list"), * field_types = { * "datetime" - * }, - * settings = { - * "increment" = 15, - * "date_order" = "YMD", - * "time_type" = "24", * } * ) */ @@ -31,6 +26,17 @@ class DateTimeDatelistWidget extends WidgetBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'increment' => '15', + 'date_order' => 'YMD', + 'time_type' => '24', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, array &$form_state) { $date_order = $this->getSetting('date_order'); $time_type = $this->getSetting('time_type'); diff --git a/core/modules/entity_reference/entity_reference.module b/core/modules/entity_reference/entity_reference.module index 2ce4219..75d9dfd 100644 --- a/core/modules/entity_reference/entity_reference.module +++ b/core/modules/entity_reference/entity_reference.module @@ -43,9 +43,6 @@ function entity_reference_field_info_alter(&$info) { $info['entity_reference']['no_ui'] = FALSE; $info['entity_reference']['class'] = '\Drupal\entity_reference\ConfigurableEntityReferenceItem'; $info['entity_reference']['list_class'] = '\Drupal\entity_reference\Plugin\Field\FieldType\ConfigurableEntityReferenceFieldItemList'; - $info['entity_reference']['settings']['target_type'] = \Drupal::moduleHandler()->moduleExists('node') ? 'node' : 'user'; - $info['entity_reference']['instance_settings']['handler'] = 'default'; - $info['entity_reference']['instance_settings']['handler_settings'] = array(); $info['entity_reference']['default_widget'] = 'entity_reference_autocomplete'; $info['entity_reference']['default_formatter'] = 'entity_reference_label'; $info['entity_reference']['provider'] = 'entity_reference'; diff --git a/core/modules/entity_reference/lib/Drupal/entity_reference/ConfigurableEntityReferenceItem.php b/core/modules/entity_reference/lib/Drupal/entity_reference/ConfigurableEntityReferenceItem.php index bcd52ad..550f3d7 100644 --- a/core/modules/entity_reference/lib/Drupal/entity_reference/ConfigurableEntityReferenceItem.php +++ b/core/modules/entity_reference/lib/Drupal/entity_reference/ConfigurableEntityReferenceItem.php @@ -21,7 +21,7 @@ * Replaces the Core 'entity_reference' entity field type implementation, this * supports configurable fields, auto-creation of referenced entities and more. * - * Required settings (below the definition's 'settings' key) are: + * Required settings are: * - target_type: The entity type to reference. * * @see entity_reference_field_info_alter(). @@ -31,6 +31,26 @@ class ConfigurableEntityReferenceItem extends EntityReferenceItem implements All /** * {@inheritdoc} */ + public static function defaultSettings() { + $settings = parent::defaultSettings(); + // The target bundle is handled by the 'target_bundles' property in the + // 'handler_settings' instance setting. + unset($settings['target_bundle']); + return $settings; + } + + /** + * {@inheritdoc} + */ + public static function defaultInstanceSettings() { + return array( + 'handler_settings' => array(), + ) + parent::defaultInstanceSettings(); + } + + /** + * {@inheritdoc} + */ public function getPossibleValues(AccountInterface $account = NULL) { return $this->getSettableValues($account); } diff --git a/core/modules/entity_reference/lib/Drupal/entity_reference/ConfigurableEntityReferenceItem.php.rej b/core/modules/entity_reference/lib/Drupal/entity_reference/ConfigurableEntityReferenceItem.php.rej new file mode 100644 index 0000000..9039435 --- /dev/null +++ b/core/modules/entity_reference/lib/Drupal/entity_reference/ConfigurableEntityReferenceItem.php.rej @@ -0,0 +1,10 @@ +diff a/core/modules/entity_reference/lib/Drupal/entity_reference/ConfigurableEntityReferenceItem.php b/core/modules/entity_reference/lib/Drupal/entity_reference/ConfigurableEntityReferenceItem.php (rejected hunks) +@@ -33,7 +33,7 @@ class ConfigurableEntityReferenceItem extends EntityReferenceItem implements All + */ + public static function defaultSettings() { + $settings = parent::defaultSettings(); +- // The instance settings 'handler_settings.target_bundles' used for this. ++ // The instance setting 'handler_settings.target_bundles' is used for this. + unset($settings['target_bundle']); + return $settings; + } 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 bebc01a..623140f 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,10 +19,6 @@ * description = @Translation("Display the referenced entities rendered by entity_view()."), * field_types = { * "entity_reference" - * }, - * settings = { - * "view_mode" = "default", - * "link" = FALSE * } * ) */ @@ -31,6 +27,16 @@ class EntityReferenceEntityFormatter extends EntityReferenceFormatterBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'view_mode' => 'default', + 'link' => FALSE, + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $elements['view_mode'] = array( '#type' => 'select', 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..a062f0b 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,9 +18,6 @@ * description = @Translation("Display the label of the referenced entities."), * field_types = { * "entity_reference" - * }, - * settings = { - * "link" = TRUE * } * ) */ @@ -29,6 +26,15 @@ class EntityReferenceLabelFormatter extends EntityReferenceFormatterBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'link' => TRUE, + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $elements['link'] = array( '#title' => t('Link label to the referenced entity'), 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 b09f7e2..f930de2 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 @@ -19,12 +19,6 @@ * field_types = { * "entity_reference" * }, - * settings = { - * "match_operator" = "CONTAINS", - * "size" = 60, - * "autocomplete_type" = "tags", - * "placeholder" = "" - * }, * multiple_values = TRUE * ) */ @@ -33,6 +27,18 @@ class AutocompleteTagsWidget extends AutocompleteWidgetBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'match_operator' => 'CONTAINS', + 'size' => '60', + 'autocomplete_type' => 'tags', + 'placeholder' => '', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function elementValidate($element, &$form_state, $form) { $value = array(); // If a value was entered into the autocomplete. 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..234eb7a 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 defaultSettings() { + return array( + 'match_operator' => 'CONTAINS', + 'size' => '60', + 'autocomplete_type' => 'tags', + 'placeholder' => '', + ) + parent::defaultSettings(); + } + /** * {@inheritdoc} */ diff --git a/core/modules/field/field.api.php b/core/modules/field/field.api.php index 92e9eb6..c433cdd 100644 --- a/core/modules/field/field.api.php +++ b/core/modules/field/field.api.php @@ -126,13 +126,6 @@ function hook_field_extra_fields_alter(&$info) { * manager. */ function hook_field_info_alter(&$info) { - // Add a setting to all field types. - foreach ($info as $field_type => $field_type_info) { - $info[$field_type]['settings'] += array( - 'mymodule_additional_setting' => 'default value', - ); - } - // Change the default widget for fields of type 'foo'. if (isset($info['foo'])) { $info['foo']['default widget'] = 'mymodule_widget'; @@ -174,15 +167,10 @@ function hook_field_info_alter(&$info) { * Perform alterations on Field API widget types. * * @param array $info - * An array of informations on existing widget types, as collected by the + * An array of information on existing widget types, as collected by the * annotation discovery mechanism. */ function hook_field_widget_info_alter(array &$info) { - // Add a setting to a widget type. - $info['text_textfield']['settings'] += array( - 'mymodule_additional_setting' => 'default value', - ); - // Let a new field type re-use an existing widget. $info['options_select']['field_types'][] = 'my_field_type'; } @@ -274,15 +262,10 @@ function hook_field_widget_WIDGET_TYPE_form_alter(&$element, &$form_state, $cont * Perform alterations on Field API formatter types. * * @param array $info - * An array of informations on existing formatter types, as collected by the + * An array of information on existing formatter types, as collected by the * annotation discovery mechanism. */ function hook_field_formatter_info_alter(array &$info) { - // Add a setting to a formatter type. - $info['text_default']['settings'] += array( - 'mymodule_additional_setting' => 'default value', - ); - // Let a new field type re-use an existing formatter. $info['text_default']['field types'][] = 'my_field_type'; } diff --git a/core/modules/field/lib/Drupal/field/Entity/FieldConfig.php b/core/modules/field/lib/Drupal/field/Entity/FieldConfig.php index ae8d4fc..d3b74cc 100644 --- a/core/modules/field/lib/Drupal/field/Entity/FieldConfig.php +++ b/core/modules/field/lib/Drupal/field/Entity/FieldConfig.php @@ -295,6 +295,7 @@ public function preSave(EntityStorageControllerInterface $storage_controller) { */ protected function preSaveNew(EntityStorageControllerInterface $storage_controller) { $entity_manager = \Drupal::entityManager(); + $field_type_manager = \Drupal::service('plugin.manager.field.field_type'); // Assign the ID. $this->id = $this->id(); @@ -318,7 +319,7 @@ protected function preSaveNew(EntityStorageControllerInterface $storage_controll } // Check that the field type is known. - $field_type = \Drupal::service('plugin.manager.field.field_type')->getDefinition($this->type); + $field_type = $field_type_manager->getDefinition($this->type); if (!$field_type) { throw new FieldException(format_string('Attempt to create a field of unknown type %type.', array('%type' => $this->type))); } @@ -326,7 +327,7 @@ protected function preSaveNew(EntityStorageControllerInterface $storage_controll // Make sure all settings are present, so that a complete field // definition is passed to the various hooks and written to config. - $this->settings += $field_type['settings']; + $this->settings += $field_type_manager->getDefaultSettings($this->type); // Notify the entity storage controller. $entity_manager->getStorageController($this->entity_type)->onFieldCreate($this); @@ -524,10 +525,11 @@ public function getSettings() { // some CPU and memory profiling to see if it's worth statically caching // $field_type_info, or the default field and instance settings, within // $this. - $field_type_info = \Drupal::service('plugin.manager.field.field_type')->getDefinition($this->type); + $field_type_manager = \Drupal::service('plugin.manager.field.field_type'); - $settings = $this->settings + $field_type_info['settings'] + $field_type_info['instance_settings']; - return $settings; + $settings = $field_type_manager->getDefaultSettings($this->type); + $instance_settings = $field_type_manager->getDefaultInstanceSettings($this->type); + return $this->settings + $settings + $instance_settings; } /** @@ -535,18 +537,14 @@ public function getSettings() { */ public function getSetting($setting_name) { // @todo See getSettings() about potentially statically caching this. - $field_type_info = \Drupal::service('plugin.manager.field.field_type')->getDefinition($this->type); - - // We assume here that consecutive array_key_exists() is more efficient than - // calling getSettings() when all we need is a single setting. + // We assume here that one call to array_key_exists() is more efficient + // than calling getSettings() when all we need is a single setting. if (array_key_exists($setting_name, $this->settings)) { return $this->settings[$setting_name]; } - elseif (array_key_exists($setting_name, $field_type_info['settings'])) { - return $field_type_info['settings'][$setting_name]; - } - elseif (array_key_exists($setting_name, $field_type_info['instance_settings'])) { - return $field_type_info['instance_settings'][$setting_name]; + $settings = $this->getSettings(); + if (array_key_exists($setting_name, $settings)) { + return $settings[$setting_name]; } else { return NULL; diff --git a/core/modules/field/lib/Drupal/field/Tests/CrudTest.php b/core/modules/field/lib/Drupal/field/Tests/CrudTest.php index 93d5241..36a2770 100644 --- a/core/modules/field/lib/Drupal/field/Tests/CrudTest.php +++ b/core/modules/field/lib/Drupal/field/Tests/CrudTest.php @@ -63,8 +63,8 @@ function testCreateField() { $this->assertEqual($field_config['cardinality'], 1, 'Cardinality defaults to 1.'); // Ensure that default settings are present. - $field_type = \Drupal::service('plugin.manager.field.field_type')->getDefinition($field_definition['type']); - $this->assertEqual($field_config['settings'], $field_type['settings'], 'Default field settings have been written.'); + $field_type_manager = \Drupal::service('plugin.manager.field.field_type'); + $this->assertEqual($field_config['settings'], $field_type_manager->getDefaultSettings($field_definition['type']), 'Default field settings have been written.'); // Guarantee that the name is unique. try { diff --git a/core/modules/field/lib/Drupal/field/Tests/FieldInfoTest.php b/core/modules/field/lib/Drupal/field/Tests/FieldInfoTest.php index b60068a..3f2e116 100644 --- a/core/modules/field/lib/Drupal/field/Tests/FieldInfoTest.php +++ b/core/modules/field/lib/Drupal/field/Tests/FieldInfoTest.php @@ -133,8 +133,8 @@ function testFieldPrepare() { $field = field_info_field('entity_test', $field_definition['name']); // Check that all expected settings are in place. - $field_type = \Drupal::service('plugin.manager.field.field_type')->getDefinition($field_definition['type']); - $this->assertEqual($field->settings, $field_type['settings'], 'All expected default field settings are present.'); + $field_type_manager = \Drupal::service('plugin.manager.field.field_type'); + $this->assertEqual($field->settings, $field_type_manager->getDefaultSettings($field_definition['type']), 'All expected default field settings are present.'); } /** @@ -167,8 +167,8 @@ function testInstancePrepare() { $instance = field_info_instance($instance_definition['entity_type'], $instance_definition['field_name'], $instance_definition['bundle']); // Check that all expected instance settings are in place. - $field_type = \Drupal::service('plugin.manager.field.field_type')->getDefinition($field_definition['type']); - $this->assertEqual($instance->settings, $field_type['instance_settings'] , 'All expected instance settings are present.'); + $field_type_manager = \Drupal::service('plugin.manager.field.field_type'); + $this->assertEqual($instance->settings, $field_type_manager->getDefaultInstanceSettings($field_definition['type']) , 'All expected instance settings are present.'); } /** @@ -292,8 +292,8 @@ function testSettingsInfo() { $info = $this->getExpectedFieldTypeDefinition(); foreach ($info as $type => $data) { $field_type_manager = \Drupal::service('plugin.manager.field.field_type'); - $this->assertIdentical($field_type_manager->getDefaultSettings($type), $data['settings'], format_string("field settings service returns %type's field settings", array('%type' => $type))); - $this->assertIdentical($field_type_manager->getDefaultInstanceSettings($type), $data['instance_settings'], format_string("field instance settings service returns %type's field instance settings", array('%type' => $type))); + $this->assertIdentical($field_type_manager->getDefaultSettings($type), $data['class']::defaultSettings(), format_string("field settings service returns %type's field settings", array('%type' => $type))); + $this->assertIdentical($field_type_manager->getDefaultInstanceSettings($type), $data['class']::defaultInstanceSettings(), format_string("field instance settings service returns %type's field instance settings", array('%type' => $type))); } } @@ -341,15 +341,6 @@ protected function getExpectedFieldTypeDefinition() { 'test_field' => array( 'label' => t('Test field'), 'description' => t('Dummy field type used for tests.'), - 'settings' => array( - 'test_field_setting' => 'dummy test string', - 'changeable' => 'a changeable field setting', - 'unchangeable' => 'an unchangeable field setting', - ), - 'instance_settings' => array( - 'test_instance_setting' => 'dummy test string', - 'test_cached_data' => FALSE, - ), 'default_widget' => 'test_field_widget', 'default_formatter' => 'field_test_default', 'class' => 'Drupal\field_test\Plugin\Field\FieldType\TestItem', @@ -357,10 +348,6 @@ protected function getExpectedFieldTypeDefinition() { 'shape' => array( 'label' => t('Shape'), 'description' => t('Another dummy field type.'), - 'settings' => array( - 'foreign_key_name' => 'shape', - ), - 'instance_settings' => array(), 'default_widget' => 'test_field_widget', 'default_formatter' => 'field_test_default', 'class' => 'Drupal\field_test\Plugin\Field\FieldType\ShapeItem', @@ -369,8 +356,6 @@ protected function getExpectedFieldTypeDefinition() { 'no_ui' => TRUE, 'label' => t('Hidden from UI test field'), 'description' => t('Dummy hidden field type used for tests.'), - 'settings' => array(), - 'instance_settings' => array(), 'default_widget' => 'test_field_widget', 'default_formatter' => 'field_test_default', 'class' => 'Drupal\field_test\Plugin\Field\FieldType\HiddenTestItem', diff --git a/core/modules/field/lib/Drupal/field/Tests/FieldInstanceCrudTest.php b/core/modules/field/lib/Drupal/field/Tests/FieldInstanceCrudTest.php index 1f73528..19851fb 100644 --- a/core/modules/field/lib/Drupal/field/Tests/FieldInstanceCrudTest.php +++ b/core/modules/field/lib/Drupal/field/Tests/FieldInstanceCrudTest.php @@ -75,8 +75,7 @@ function testCreateFieldInstance() { // the loaded ConfigEntity, to be sure we check that the defaults are // applied on write. $config = \Drupal::config('field.instance.' . $instance->id())->get(); - - $field_type = \Drupal::service('plugin.manager.field.field_type')->getDefinition($this->field_definition['type']); + $field_type_manager = \Drupal::service('plugin.manager.field.field_type'); // Check that default values are set. $this->assertEqual($config['required'], FALSE, 'Required defaults to false.'); @@ -84,7 +83,7 @@ function testCreateFieldInstance() { $this->assertIdentical($config['description'], '', 'Description defaults to empty string.'); // Check that default settings are set. - $this->assertEqual($config['settings'], $field_type['instance_settings'] , 'Default instance settings have been written.'); + $this->assertEqual($config['settings'], $field_type_manager->getDefaultInstanceSettings($this->field_definition['type']) , 'Default instance settings have been written.'); // Guarantee that the field/bundle combination is unique. try { 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 97beb5c..3e61ca1 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 @@ -20,9 +20,6 @@ * field_types = { * "test_field" * }, - * settings = { - * "test_formatter_setting" = "dummy test string" - * }, * weight = 1 * ) */ @@ -31,6 +28,15 @@ class TestFieldDefaultFormatter extends FormatterBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'test_formatter_setting' => 'dummy test string', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $element['test_formatter_setting'] = array( '#title' => t('Setting'), 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 e624bf9..4b9bb4b 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 @@ -19,9 +19,6 @@ * field_types = { * "test_field", * }, - * settings = { - * "test_empty_string" = "**EMPTY FIELD**" - * }, * weight = -5 * ) */ @@ -30,6 +27,15 @@ class TestFieldEmptyFormatter extends FormatterBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'test_empty_string' => '**EMPTY FIELD**', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function viewElements(FieldItemListInterface $items) { $elements = array(); 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 fa4d9a9..7cd25fb 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 @@ -19,9 +19,6 @@ * field_types = { * "test_field", * }, - * settings = { - * "field_empty_setting" = "" - * }, * weight = -1 * ) */ @@ -30,6 +27,15 @@ class TestFieldEmptySettingFormatter extends FormatterBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'field_empty_setting' => '', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $element['field_empty_setting'] = array( '#title' => t('Setting'), 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 87d9553..1aeb570 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 @@ -20,9 +20,6 @@ * field_types = { * "test_field" * }, - * settings = { - * "test_formatter_setting_multiple" = "dummy test string" - * }, * weight = 5 * ) */ @@ -31,6 +28,15 @@ class TestFieldMultipleFormatter extends FormatterBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'test_formatter_setting_multiple' => 'dummy test string', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $element['test_formatter_setting_multiple'] = array( '#title' => t('Setting'), 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 85b97f1..beb17e9 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 @@ -20,9 +20,6 @@ * field_types = { * "test_field" * }, - * settings = { - * "test_formatter_setting_additional" = "dummy test string" - * }, * weight = 10 * ) */ @@ -31,6 +28,15 @@ class TestFieldPrepareViewFormatter extends FormatterBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'test_formatter_setting_additional' => 'dummy test string', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $element['test_formatter_setting_additional'] = array( '#title' => t('Setting'), diff --git a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldType/ShapeItem.php b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldType/ShapeItem.php index 348886a..58985b8 100644 --- a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldType/ShapeItem.php +++ b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldType/ShapeItem.php @@ -18,9 +18,6 @@ * id = "shape", * label = @Translation("Shape"), * description = @Translation("Another dummy field type."), - * settings = { - * "foreign_key_name" = "shape" - * }, * default_widget = "test_field_widget", * default_formatter = "field_test_default" * ) @@ -30,6 +27,15 @@ class ShapeItem extends FieldItemBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'foreign_key_name' => 'shape', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public static function propertyDefinitions(FieldDefinitionInterface $field_definition) { $properties['shape'] = DataDefinition::create('string') ->setLabel(t('Shape')); diff --git a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldType/TestItem.php b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldType/TestItem.php index 6c85daa..b3326ef 100644 --- a/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldType/TestItem.php +++ b/core/modules/field/tests/modules/field_test/lib/Drupal/field_test/Plugin/Field/FieldType/TestItem.php @@ -19,15 +19,6 @@ * id = "test_field", * label = @Translation("Test field"), * description = @Translation("Dummy field type used for tests."), - * settings = { - * "test_field_setting" = "dummy test string", - * "changeable" = "a changeable field setting", - * "unchangeable" = "an unchangeable field setting" - * }, - * instance_settings = { - * "test_instance_setting" = "dummy test string", - * "test_cached_data" = FALSE - * }, * default_widget = "test_field_widget", * default_formatter = "field_test_default" * ) @@ -37,6 +28,27 @@ class TestItem extends FieldItemBase implements PrepareCacheInterface { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'test_field_setting' => 'dummy test string', + 'changeable' => 'a changeable field setting', + 'unchangeable' => 'an unchangeable field setting', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ + public static function defaultInstanceSettings() { + return array( + 'test_instance_setting' => 'dummy test string', + 'test_cached_data' => FALSE, + ) + parent::defaultInstanceSettings(); + } + + /** + * {@inheritdoc} + */ public static function propertyDefinitions(FieldDefinitionInterface $field_definition) { $properties['value'] = DataDefinition::create('integer') ->setLabel(t('Test integer value')); 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 ae80042..1fcc8bc 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 @@ -21,9 +21,6 @@ * "test_field", * "hidden_test_field" * }, - * settings = { - * "test_widget_setting" = "dummy test string" - * }, * weight = -10 * ) */ @@ -32,6 +29,15 @@ class TestFieldWidget extends WidgetBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'test_widget_setting' => 'dummy test string', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $element['test_widget_setting'] = array( '#type' => 'textfield', 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 a16eb3f..ac4609c 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,9 +22,6 @@ * @FieldWidget( * id = "test_field_widget_multiple", * label = @Translation("Test widget - multiple"), - * settings = { - * "test_widget_setting_multiple" = "dummy test string" - * }, * multiple_values = TRUE, * weight = 10 * ) @@ -34,6 +31,15 @@ class TestFieldWidgetMultiple extends WidgetBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'test_widget_setting_multiple' => 'dummy test string', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $element['test_widget_setting_multiple'] = array( '#type' => 'textfield', 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 495a6e2..2deca15 100644 --- a/core/modules/field_ui/lib/Drupal/field_ui/DisplayOverviewBase.php +++ b/core/modules/field_ui/lib/Drupal/field_ui/DisplayOverviewBase.php @@ -399,8 +399,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 ($this->pluginManager->getDefaultSettings($display_options['type'])) { $field_row['settings_edit'] = $base_button + array( '#type' => 'image_button', '#name' => $field_name . '_settings_edit', diff --git a/core/modules/field_ui/lib/Drupal/field_ui/Tests/ManageDisplayTest.php b/core/modules/field_ui/lib/Drupal/field_ui/Tests/ManageDisplayTest.php index 133b578..1b8c16d 100644 --- a/core/modules/field_ui/lib/Drupal/field_ui/Tests/ManageDisplayTest.php +++ b/core/modules/field_ui/lib/Drupal/field_ui/Tests/ManageDisplayTest.php @@ -106,9 +106,9 @@ function testFormatterUI() { $edit = array($fieldname => 'foo'); $this->drupalPostAjaxForm(NULL, $edit, "field_test_plugin_settings_update"); - // Confirm that the settings are updated on the settings form. + // Confirm that the extra settings are not updated on the settings form. $this->drupalPostAjaxForm(NULL, array(), "field_test_settings_edit"); - $this->assertFieldByName($fieldname, 'foo'); + $this->assertFieldByName($fieldname, ''); // Test the empty setting formatter. $edit = array('fields[field_test][type]' => 'field_empty_setting'); @@ -199,9 +199,9 @@ public function testWidgetUI() { $edit = array($fieldname => 'foo'); $this->drupalPostAjaxForm(NULL, $edit, "field_test_plugin_settings_update"); - // Confirm that the settings are updated on the settings form. + // Confirm that the extra settings are not updated on the settings form. $this->drupalPostAjaxForm(NULL, array(), "field_test_settings_edit"); - $this->assertFieldByName($fieldname, 'foo'); + $this->assertFieldByName($fieldname, ''); } /** @@ -225,10 +225,12 @@ function testViewModeCustom() { $node = $this->drupalCreateNode($settings); // Gather expected output values with the various formatters. - $formatters = \Drupal::service('plugin.manager.field.formatter')->getDefinitions(); + $formatter_plugin_manager = \Drupal::service('plugin.manager.field.formatter'); + $field_test_default_settings = $formatter_plugin_manager->getDefaultSettings('field_test_default'); + $field_test_with_prepare_view_settings = $formatter_plugin_manager->getDefaultSettings('field_test_with_prepare_view'); $output = array( - 'field_test_default' => $formatters['field_test_default']['settings']['test_formatter_setting'] . '|' . $value, - 'field_test_with_prepare_view' => $formatters['field_test_with_prepare_view']['settings']['test_formatter_setting_additional'] . '|' . $value. '|' . ($value + 1), + 'field_test_default' => $field_test_default_settings['test_formatter_setting'] . '|' . $value, + 'field_test_with_prepare_view' => $field_test_with_prepare_view_settings['test_formatter_setting_additional'] . '|' . $value. '|' . ($value + 1), ); // Check that the field is displayed with the default formatter in 'rss' diff --git a/core/modules/file/file.field.inc b/core/modules/file/file.field.inc index a3c7140..7d106ae 100644 --- a/core/modules/file/file.field.inc +++ b/core/modules/file/file.field.inc @@ -9,16 +9,6 @@ use Drupal\field\FieldConfigInterface; /** - * Implements hook_field_info_alter(). - * - * Cannot annotate in FieldItem plugin the settings.uri_scheme meta data key - * with a dynamic value. We need to alter the value here. - */ -function file_field_info_alter(&$info) { - $info['file']['settings']['uri_scheme'] = file_default_scheme(); -} - -/** * Returns HTML for an individual file upload widget. * * @param $variables diff --git a/core/modules/file/lib/Drupal/file/Plugin/Field/FieldType/FileItem.php b/core/modules/file/lib/Drupal/file/Plugin/Field/FieldType/FileItem.php index d72ccad..7e66420 100644 --- a/core/modules/file/lib/Drupal/file/Plugin/Field/FieldType/FileItem.php +++ b/core/modules/file/lib/Drupal/file/Plugin/Field/FieldType/FileItem.php @@ -18,18 +18,6 @@ * id = "file", * label = @Translation("File"), * description = @Translation("This field stores the ID of a file as an integer value."), - * settings = { - * "target_type" = "file", - * "display_field" = "0", - * "display_default" = "0", - * "uri_scheme" = "" - * }, - * instance_settings = { - * "file_extensions" = "txt", - * "file_directory" = "", - * "max_filesize" = "", - * "description_field" = "0" - * }, * default_widget = "file_generic", * default_formatter = "file_default", * list_class = "\Drupal\file\Plugin\Field\FieldType\FileFieldItemList" @@ -40,6 +28,30 @@ class FileItem extends EntityReferenceItem { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'target_type' => 'file', + 'display_field' => 0, + 'display_default' => 0, + 'uri_scheme' => file_default_scheme(), + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ + public static function defaultInstanceSettings() { + return array( + 'file_extensions' => 'txt', + 'file_directory' => '', + 'max_filesize' => '', + 'description_field' => 0, + ) + parent::defaultInstanceSettings(); + } + + /** + * {@inheritdoc} + */ public static function schema(FieldDefinitionInterface $field_definition) { return array( 'columns' => array( 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 9267eae..460b95e 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,9 +21,6 @@ * label = @Translation("File"), * field_types = { * "file" - * }, - * settings = { - * "progress_indicator" = "throbber" * } * ) */ @@ -32,6 +29,15 @@ class FileWidget extends WidgetBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'progress_indicator' => 'throbber', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $element['progress_indicator'] = array( '#type' => 'radios', diff --git a/core/modules/image/image.field.inc b/core/modules/image/image.field.inc index 4407563..5462520 100644 --- a/core/modules/image/image.field.inc +++ b/core/modules/image/image.field.inc @@ -8,13 +8,6 @@ use Drupal\Component\Utility\NestedArray; /** - * Implements hook_field_info_alter(). - */ -function image_field_info_alter(&$info) { - $info['image']['settings']['uri_scheme'] = file_default_scheme(); -} - -/** * Returns HTML for an image field widget. * * @param array $variables 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..69bf5f5 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,10 +17,6 @@ * label = @Translation("Image"), * field_types = { * "image" - * }, - * settings = { - * "image_style" = "", - * "image_link" = "" * } * ) */ @@ -29,6 +25,16 @@ class ImageFormatter extends ImageFormatterBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'image_style' => '', + 'image_link' => '', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $image_styles = image_style_options(FALSE); $element['image_style'] = array( diff --git a/core/modules/image/lib/Drupal/image/Plugin/Field/FieldType/ImageItem.php b/core/modules/image/lib/Drupal/image/Plugin/Field/FieldType/ImageItem.php index 5442d17..f664bb8 100644 --- a/core/modules/image/lib/Drupal/image/Plugin/Field/FieldType/ImageItem.php +++ b/core/modules/image/lib/Drupal/image/Plugin/Field/FieldType/ImageItem.php @@ -18,49 +18,6 @@ * id = "image", * label = @Translation("Image"), * description = @Translation("This field stores the ID of an image file as an integer value."), - * settings = { - * "target_type" = "file", - * "uri_scheme" = "", - * "default_image" = { - * "fid" = NULL, - * "alt" = "", - * "title" = "", - * "width" = NULL, - * "height" = NULL - * }, - * "column_groups" = { - * "file" = { - * "label" = @Translation("File"), - * "columns" = { "target_id", "width", "height" } - * }, - * "alt" = { - * "label" = @Translation("Alt"), - * "translatable" = TRUE - * }, - * "title" = { - * "label" = @Translation("Title"), - * "translatable" = TRUE - * } - * } - * }, - * instance_settings = { - * "file_extensions" = "png gif jpg jpeg", - * "file_directory" = "", - * "max_filesize" = "", - * "alt_field" = "0", - * "alt_field_required" = "0", - * "title_field" = "0", - * "title_field_required" = "0", - * "max_resolution" = "", - * "min_resolution" = "", - * "default_image" = { - * "fid" = NULL, - * "alt" = "", - * "title" = "", - * "width" = NULL, - * "height" = NULL - * } - * }, * default_widget = "image_image", * default_formatter = "image", * list_class = "\Drupal\file\Plugin\Field\FieldType\FileFieldItemList" @@ -71,6 +28,59 @@ class ImageItem extends FileItem { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'default_image' => array( + 'fid' => NULL, + 'alt' => '', + 'title' => '', + 'width' => NULL, + 'height' => NULL, + ), + 'column_groups' => array( + 'file' => array( + 'label' => t('File'), + 'columns' => array('target_id', 'width', 'height'), + ), + 'alt' => array( + 'label' => t('Alt'), + 'translatable' => TRUE, + ), + 'title' => array( + 'label' => t('Title'), + 'translatable' => TRUE, + ), + ), + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ + public static function defaultInstanceSettings() { + $settings = array( + 'file_extensions' => 'png gif jpg jpeg', + 'alt_field' => 0, + 'alt_field_required' => 0, + 'title_field' => 0, + 'title_field_required' => 0, + 'max_resolution' => '', + 'min_resolution' => '', + 'default_image' => array( + 'fid' => NULL, + 'alt' => '', + 'width' => NULL, + 'height' => NULL, + ), + ) + parent::defaultInstanceSettings(); + + unset($settings['description_field']); + return $settings; + } + + /** + * {@inheritdoc} + */ public static function schema(FieldDefinitionInterface $field_definition) { return array( 'columns' => array( 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..811ed0f 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,10 +19,6 @@ * label = @Translation("Image"), * field_types = { * "image" - * }, - * settings = { - * "progress_indicator" = "throbber", - * "preview_image_style" = "thumbnail", * } * ) */ @@ -31,6 +27,16 @@ class ImageWidget extends FileWidget { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'progress_indicator' => 'throbber', + 'preview_image_style' => 'thumbnail', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $element = parent::settingsForm($form, $form_state); 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 921970d..fd8db1c 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 @@ -21,13 +21,6 @@ * label = @Translation("Link"), * field_types = { * "link" - * }, - * settings = { - * "trim_length" = "80", - * "url_only" = "", - * "url_plain" = "", - * "rel" = "", - * "target" = "" * } * ) */ @@ -36,6 +29,19 @@ class LinkFormatter extends FormatterBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'trim_length' => '80', + 'url_only' => '', + 'url_plain' => '', + 'rel' => '', + 'target' => '', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $elements = parent::settingsForm($form, $form_state); 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..a123e80 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,11 +22,6 @@ * label = @Translation("Separate link text and URL"), * field_types = { * "link" - * }, - * settings = { - * "trim_length" = "80", - * "rel" = "", - * "target" = "" * } * ) */ @@ -35,6 +30,17 @@ class LinkSeparateFormatter extends LinkFormatter { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'trim_length' => '80', + 'rel' => '', + 'target' => '', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function viewElements(FieldItemListInterface $items) { $element = array(); $entity = $items->getEntity(); diff --git a/core/modules/link/lib/Drupal/link/Plugin/Field/FieldType/LinkItem.php b/core/modules/link/lib/Drupal/link/Plugin/Field/FieldType/LinkItem.php index e9aff29..58a5826 100644 --- a/core/modules/link/lib/Drupal/link/Plugin/Field/FieldType/LinkItem.php +++ b/core/modules/link/lib/Drupal/link/Plugin/Field/FieldType/LinkItem.php @@ -19,9 +19,6 @@ * id = "link", * label = @Translation("Link"), * description = @Translation("Stores a URL string, optional varchar link text, and optional blob of attributes to assemble a link."), - * instance_settings = { - * "title" = "1" - * }, * default_widget = "link_default", * default_formatter = "link" * ) @@ -31,6 +28,15 @@ class LinkItem extends FieldItemBase { /** * {@inheritdoc} */ + public static function defaultInstanceSettings() { + return array( + 'title' => 1, + ) + parent::defaultInstanceSettings(); + } + + /** + * {@inheritdoc} + */ public static function propertyDefinitions(FieldDefinitionInterface $field_definition) { $properties['url'] = DataDefinition::create('uri') ->setLabel(t('URL')); 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..7f69639 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,10 +18,6 @@ * label = @Translation("Link"), * field_types = { * "link" - * }, - * settings = { - * "placeholder_url" = "", - * "placeholder_title" = "" * } * ) */ @@ -30,6 +26,16 @@ class LinkWidget extends WidgetBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'placeholder_url' => '', + 'placeholder_title' => '', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, array &$form_state) { $element['url'] = array( '#type' => 'url', diff --git a/core/modules/options/lib/Drupal/options/Plugin/Field/FieldType/ListBooleanItem.php b/core/modules/options/lib/Drupal/options/Plugin/Field/FieldType/ListBooleanItem.php index b65a2da..76de3b7 100644 --- a/core/modules/options/lib/Drupal/options/Plugin/Field/FieldType/ListBooleanItem.php +++ b/core/modules/options/lib/Drupal/options/Plugin/Field/FieldType/ListBooleanItem.php @@ -23,10 +23,6 @@ * description = @Translation("This field stores simple on/off or yes/no options."), * default_widget = "options_buttons", * default_formatter = "list_default", - * settings = { - * "allowed_values" = { }, - * "allowed_values_function" = "" - * } * ) */ class ListBooleanItem extends FieldItemBase implements AllowedValuesInterface { @@ -34,6 +30,16 @@ class ListBooleanItem extends FieldItemBase implements AllowedValuesInterface { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'allowed_values' => array(), + 'allowed_values_function' => '', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function getPossibleValues(AccountInterface $account = NULL) { return array_keys($this->getSettableOptions($account)); } diff --git a/core/modules/options/lib/Drupal/options/Plugin/Field/FieldType/ListFloatItem.php b/core/modules/options/lib/Drupal/options/Plugin/Field/FieldType/ListFloatItem.php index 5829f61..b3f7271 100644 --- a/core/modules/options/lib/Drupal/options/Plugin/Field/FieldType/ListFloatItem.php +++ b/core/modules/options/lib/Drupal/options/Plugin/Field/FieldType/ListFloatItem.php @@ -19,10 +19,6 @@ * description = @Translation("This field stores float values from a list of allowed 'value => label' pairs, i.e. 'Fraction': 0 => 0, .25 => 1/4, .75 => 3/4, 1 => 1."), * default_widget = "options_select", * default_formatter = "list_default", - * settings = { - * "allowed_values" = { }, - * "allowed_values_function" = "" - * } * ) */ class ListFloatItem extends ListItemBase { diff --git a/core/modules/options/lib/Drupal/options/Plugin/Field/FieldType/ListIntegerItem.php b/core/modules/options/lib/Drupal/options/Plugin/Field/FieldType/ListIntegerItem.php index e4f6a16..cc506d4 100644 --- a/core/modules/options/lib/Drupal/options/Plugin/Field/FieldType/ListIntegerItem.php +++ b/core/modules/options/lib/Drupal/options/Plugin/Field/FieldType/ListIntegerItem.php @@ -19,10 +19,6 @@ * description = @Translation("This field stores integer values from a list of allowed 'value => label' pairs, i.e. 'Lifetime in days': 1 => 1 day, 7 => 1 week, 31 => 1 month."), * default_widget = "options_select", * default_formatter = "list_default", - * settings = { - * "allowed_values" = { }, - * "allowed_values_function" = "" - * } * ) */ class ListIntegerItem extends ListItemBase { diff --git a/core/modules/options/lib/Drupal/options/Plugin/Field/FieldType/ListItemBase.php b/core/modules/options/lib/Drupal/options/Plugin/Field/FieldType/ListItemBase.php index 1692444..b1816f2 100644 --- a/core/modules/options/lib/Drupal/options/Plugin/Field/FieldType/ListItemBase.php +++ b/core/modules/options/lib/Drupal/options/Plugin/Field/FieldType/ListItemBase.php @@ -19,6 +19,16 @@ /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'allowed_values' => array(), + 'allowed_values_function' => '', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function getPossibleValues(AccountInterface $account = NULL) { // Flatten options firstly, because Possible Options may contain group // arrays. diff --git a/core/modules/options/lib/Drupal/options/Plugin/Field/FieldType/ListTextItem.php b/core/modules/options/lib/Drupal/options/Plugin/Field/FieldType/ListTextItem.php index bf6b8ee..6180368 100644 --- a/core/modules/options/lib/Drupal/options/Plugin/Field/FieldType/ListTextItem.php +++ b/core/modules/options/lib/Drupal/options/Plugin/Field/FieldType/ListTextItem.php @@ -19,10 +19,6 @@ * description = @Translation("This field stores text values from a list of allowed 'value => label' pairs, i.e. 'US States': IL => Illinois, IA => Iowa, IN => Indiana."), * default_widget = "options_select", * default_formatter = "list_default", - * settings = { - * "allowed_values" = { }, - * "allowed_values_function" = "" - * } * ) */ class ListTextItem extends ListItemBase { 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..731f3b2 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,9 +19,6 @@ * field_types = { * "list_boolean" * }, - * settings = { - * "display_label" = FALSE, - * }, * multiple_values = TRUE * ) */ @@ -30,6 +27,15 @@ class OnOffWidget extends OptionsWidgetBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'display_label' => FALSE, + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $element['display_label'] = array( '#type' => 'checkbox', diff --git a/core/modules/responsive_image/lib/Drupal/responsive_image/Plugin/Field/FieldFormatter/ResponsiveImageFormatter.php b/core/modules/responsive_image/lib/Drupal/responsive_image/Plugin/Field/FieldFormatter/ResponsiveImageFormatter.php index 8f935c0..dc82c66 100644 --- a/core/modules/responsive_image/lib/Drupal/responsive_image/Plugin/Field/FieldFormatter/ResponsiveImageFormatter.php +++ b/core/modules/responsive_image/lib/Drupal/responsive_image/Plugin/Field/FieldFormatter/ResponsiveImageFormatter.php @@ -18,11 +18,6 @@ * label = @Translation("Responsive image"), * field_types = { * "image", - * }, - * settings = { - * "responsive_image_mapping" = "", - * "fallback_image_style" = "", - * "image_link" = "", * } * ) */ @@ -31,6 +26,17 @@ class ResponsiveImageFormatter extends ImageFormatterBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'responsive_image_mapping' => '', + 'fallback_image_style' => '', + 'image_link' => '', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $responsive_image_options = array(); $responsive_image_mappings = entity_load_multiple('responsive_image_mapping'); diff --git a/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/Field/FieldType/TaxonomyTermReferenceItem.php b/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/Field/FieldType/TaxonomyTermReferenceItem.php index d044f96..eaa2103 100644 --- a/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/Field/FieldType/TaxonomyTermReferenceItem.php +++ b/core/modules/taxonomy/lib/Drupal/taxonomy/Plugin/Field/FieldType/TaxonomyTermReferenceItem.php @@ -19,17 +19,6 @@ * id = "taxonomy_term_reference", * label = @Translation("Term Reference"), * description = @Translation("This field stores a reference to a taxonomy term."), - * settings = { - * "target_type" = "taxonomy_term", - * "options_list_callback" = NULL, - * "allowed_values" = { - * { - * "vocabulary" = "", - * "parent" = "0" - * } - * } - * }, - * instance_settings = { }, * default_widget = "options_select", * default_formatter = "taxonomy_term_reference_link", * list_class = "\Drupal\taxonomy\Plugin\Field\FieldType\TaxonomyTermReferenceFieldItemList" @@ -40,6 +29,22 @@ class TaxonomyTermReferenceItem extends EntityReferenceItem implements AllowedVa /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'target_type' => 'taxonomy_term', + 'options_list_callback' => NULL, + 'allowed_values' => array( + array( + 'vocabulary' => '', + 'parent' => 0, + ), + ), + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function getPossibleValues(AccountInterface $account = NULL) { // Flatten options firstly, because Possible Options may contain group // arrays. 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..4d7fe8f 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,11 +19,6 @@ * field_types = { * "taxonomy_term_reference" * }, - * settings = { - * "size" = "60", - * "autocomplete_route_name" = "taxonomy.autocomplete", - * "placeholder" = "" - * }, * multiple_values = TRUE * ) */ @@ -32,6 +27,17 @@ class TaxonomyAutocompleteWidget extends WidgetBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'size' => '60', + 'autocomplete_route_name' => 'taxonomy.autocomplete', + 'placeholder' => '', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $element['placeholder'] = array( '#type' => 'textfield', 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..dfab549 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,9 +18,6 @@ * label = @Translation("Telephone link"), * field_types = { * "telephone" - * }, - * settings = { - * "title" = "" * } * ) */ @@ -29,6 +26,15 @@ class TelephoneLinkFormatter extends FormatterBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'title' => '', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $elements['title'] = array( '#type' => 'textfield', 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..0bdd1c8 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,19 @@ * label = @Translation("Telephone number"), * field_types = { * "telephone" - * }, - * settings = { - * "placeholder" = "" * } * ) */ class TelephoneDefaultWidget extends WidgetBase { + /** + * {@inheritdoc} + */ + public static function defaultSettings() { + return array( + 'placeholder' => '', + ) + parent::defaultSettings(); + } /** * {@inheritdoc} diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextSummaryOrTrimmedFormatter.php b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextSummaryOrTrimmedFormatter.php index baebdc1..71b2088 100644 --- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextSummaryOrTrimmedFormatter.php +++ b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextSummaryOrTrimmedFormatter.php @@ -16,9 +16,6 @@ * field_types = { * "text_with_summary" * }, - * settings = { - * "trim_length" = "600" - * }, * edit = { * "editor" = "form" * } 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..c0901da 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" * } @@ -38,6 +35,15 @@ class TextTrimmedFormatter extends FormatterBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'trim_length' => '600', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $element['trim_length'] = array( '#title' => t('Trim length'), diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextItem.php b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextItem.php index 93bd949..49ca7f1 100644 --- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextItem.php +++ b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextItem.php @@ -16,12 +16,6 @@ * id = "text", * label = @Translation("Text"), * description = @Translation("This field stores varchar text in the database."), - * settings = { - * "max_length" = "255" - * }, - * instance_settings = { - * "text_processing" = "0" - * }, * default_widget = "text_textfield", * default_formatter = "text_default" * ) @@ -31,6 +25,15 @@ class TextItem extends TextItemBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'max_length' => 255, + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public static function schema(FieldDefinitionInterface $field_definition) { return array( 'columns' => array( diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextItemBase.php b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextItemBase.php index 0c85997..fe704c2 100644 --- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextItemBase.php +++ b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextItemBase.php @@ -20,6 +20,15 @@ /** * {@inheritdoc} */ + public static function defaultInstanceSettings() { + $settings = parent::defaultInstanceSettings(); + $settings['text_processing'] = 0; + return $settings; + } + + /** + * {@inheritdoc} + */ public static function propertyDefinitions(FieldDefinitionInterface $field_definition) { $properties['value'] = DataDefinition::create('string') ->setLabel(t('Text value')); diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextLongItem.php b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextLongItem.php index 934d11f..1cf0385 100644 --- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextLongItem.php +++ b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextLongItem.php @@ -16,9 +16,6 @@ * id = "text_long", * label = @Translation("Long text"), * description = @Translation("This field stores long text in the database."), - * instance_settings = { - * "text_processing" = "0" - * }, * default_widget = "text_textarea", * default_formatter = "text_default" * ) diff --git a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextWithSummaryItem.php b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextWithSummaryItem.php index 5fe30fc..8cb505f 100644 --- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextWithSummaryItem.php +++ b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldType/TextWithSummaryItem.php @@ -17,10 +17,6 @@ * id = "text_with_summary", * label = @Translation("Long text and summary"), * description = @Translation("This field stores long text in the database along with optional summary text."), - * instance_settings = { - * "text_processing" = "1", - * "display_summary" = "0" - * }, * default_widget = "text_textarea_with_summary", * default_formatter = "text_default" * ) @@ -30,6 +26,16 @@ class TextWithSummaryItem extends TextItemBase { /** * {@inheritdoc} */ + public static function defaultInstanceSettings() { + return array( + 'text_processing' => 1, + 'display_summary' => 0, + ) + parent::defaultInstanceSettings(); + } + + /** + * {@inheritdoc} + */ public static function propertyDefinitions(FieldDefinitionInterface $field_definition) { $properties = parent::propertyDefinitions($field_definition); 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..3c57008 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,10 +19,6 @@ * label = @Translation("Text area (multiple rows)"), * field_types = { * "text_long" - * }, - * settings = { - * "rows" = "5", - * "placeholder" = "" * } * ) */ @@ -31,6 +27,16 @@ class TextareaWidget extends WidgetBase { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'rows' => '5', + 'placeholder' => '', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $element['rows'] = array( '#type' => 'number', 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 4775b86..e23e794 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,11 +19,6 @@ * label = @Translation("Text area with a summary"), * field_types = { * "text_with_summary" - * }, - * settings = { - * "rows" = "9", - * "summary_rows" = "3", - * "placeholder" = "" * } * ) */ @@ -32,6 +27,17 @@ class TextareaWithSummaryWidget extends TextareaWidget { /** * {@inheritdoc} */ + public static function defaultSettings() { + return array( + 'rows' => '9', + 'summary_rows' => '3', + 'placeholder' => '', + ) + parent::defaultSettings(); + } + + /** + * {@inheritdoc} + */ public function settingsForm(array $form, array &$form_state) { $element = parent::settingsForm($form, $form_state); $element['summary_rows'] = array( 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 35f6957..989bcb8 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 @@ -21,10 +21,6 @@ * "text", * "string" * }, - * settings = { - * "size" = "60", - * "placeholder" = "" - * } * ) */ class TextfieldWidget extends StringWidget {