diff --git a/core/modules/datetime/lib/Drupal/datetime/Plugin/field/widget/DatetimeDatelistWidget.php b/core/modules/datetime/lib/Drupal/datetime/Plugin/field/widget/DatetimeDatelistWidget.php index b208e36..8dbe16e 100644 --- a/core/modules/datetime/lib/Drupal/datetime/Plugin/field/widget/DatetimeDatelistWidget.php +++ b/core/modules/datetime/lib/Drupal/datetime/Plugin/field/widget/DatetimeDatelistWidget.php @@ -39,14 +39,14 @@ class DateTimeDatelistWidget extends WidgetBase { /** * {@inheritdoc} */ - public function __construct($plugin_id, array $plugin_definition, FieldDefinitionInterface $field_definition, array $settings) { + public function __construct(array $configuration, $plugin_id, array $plugin_definition) { // Identify the function used to set the default value. // @todo Make this work for both configurable and nonconfigurable fields: // https://drupal.org/node/1989468. - if ($field_definition instanceof FieldInstanceInterface) { - $field_definition->default_value_function = $this->defaultValueFunction(); + if ($configuration['field_definition'] instanceof FieldInstanceInterface) { + $configuration['field_definition']->default_value_function = $this->defaultValueFunction(); } - parent::__construct($plugin_id, $plugin_definition, $field_definition, $settings); + parent::__construct($configuration, $plugin_id, $plugin_definition); } /** diff --git a/core/modules/datetime/lib/Drupal/datetime/Plugin/field/widget/DatetimeDefaultWidget.php b/core/modules/datetime/lib/Drupal/datetime/Plugin/field/widget/DatetimeDefaultWidget.php index da550c7..d718a55 100644 --- a/core/modules/datetime/lib/Drupal/datetime/Plugin/field/widget/DatetimeDefaultWidget.php +++ b/core/modules/datetime/lib/Drupal/datetime/Plugin/field/widget/DatetimeDefaultWidget.php @@ -40,14 +40,14 @@ class DateTimeDefaultWidget extends WidgetBase { /** * {@inheritdoc} */ - public function __construct($plugin_id, array $plugin_definition, FieldDefinitionInterface $field_definition, array $settings) { + public function __construct(array $configuration, $plugin_id, array $plugin_definition) { // Identify the function used to set the default value. // @todo Make this work for both configurable and nonconfigurable fields: // https://drupal.org/node/1989468. - if ($field_definition instanceof FieldInstanceInterface) { - $field_definition->default_value_function = $this->defaultValueFunction(); + if ($configuration['field_definition'] instanceof FieldInstanceInterface) { + $configuration['field_definition']->default_value_function = $this->defaultValueFunction(); } - parent::__construct($plugin_id, $plugin_definition, $field_definition, $settings); + parent::__construct($configuration, $plugin_id, $plugin_definition); // @todo Inject this once https://drupal.org/node/2035317 is in. $this->dateStorage = \Drupal::entityManager()->getStorageController('date_format'); diff --git a/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetBase.php b/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetBase.php index 5f14ac3..3444ccb 100644 --- a/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetBase.php +++ b/core/modules/field/lib/Drupal/field/Plugin/Type/Widget/WidgetBase.php @@ -13,7 +13,6 @@ use Drupal\Core\Entity\Field\FieldInterface; use Drupal\field\FieldInstanceInterface; use Drupal\field\Plugin\PluginSettingsBase; -use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\Validator\ConstraintViolationInterface; /** @@ -38,32 +37,21 @@ /** * Constructs a WidgetBase object. * + * @param array $configuration + * A configuration array containing two keys: + * - settings: The widget settings. + * - field_definition: The definition of the field with which the widget is + * associated: \Drupal\Core\Entity\Field\FieldDefinitionInterface. * @param array $plugin_id * The plugin_id for the widget. * @param array $plugin_definition * The plugin implementation definition. - * @param \Drupal\Core\Entity\Field\FieldDefinitionInterface $field_definition - * The definition of the field to which the widget is associated. - * @param array $settings - * The widget settings. */ - public function __construct($plugin_id, array $plugin_definition, FieldDefinitionInterface $field_definition, array $settings) { + public function __construct(array $configuration, $plugin_id, array $plugin_definition) { parent::__construct(array(), $plugin_id, $plugin_definition); - $this->fieldDefinition = $field_definition; - $this->settings = $settings; - } - - /** - * {@inheritdoc} - */ - public static function create(ContainerInterface $container, array $configuration, $plugin_id, array $plugin_definition) { - return new static( - $plugin_id, - $plugin_definition, - $configuration['field_definition'], - $configuration['settings'] - ); + $this->fieldDefinition = $configuration['field_definition']; + $this->settings = $configuration['settings']; } /** diff --git a/core/modules/options/lib/Drupal/options/Plugin/field/widget/OptionsWidgetBase.php b/core/modules/options/lib/Drupal/options/Plugin/field/widget/OptionsWidgetBase.php index 0d55ab3..7aae718 100644 --- a/core/modules/options/lib/Drupal/options/Plugin/field/widget/OptionsWidgetBase.php +++ b/core/modules/options/lib/Drupal/options/Plugin/field/widget/OptionsWidgetBase.php @@ -37,8 +37,9 @@ /** * {@inheritdoc} */ - public function __construct($plugin_id, array $plugin_definition, FieldDefinitionInterface $field_definition, array $settings) { - parent::__construct($plugin_id, $plugin_definition, $field_definition, $settings); + public function __construct(array $configuration, $plugin_id, array $plugin_definition) { + parent::__construct($configuration, $plugin_id, $plugin_definition); + $property_names = $this->fieldDefinition->getFieldPropertyNames(); $this->column = $property_names[0]; }