diff --git a/core/modules/datetime/lib/Drupal/datetime/Plugin/Field/FieldType/DateTimeFieldItemList.php b/core/modules/datetime/lib/Drupal/datetime/Plugin/Field/FieldType/DateTimeFieldItemList.php index e102c0e..22c6131 100644 --- a/core/modules/datetime/lib/Drupal/datetime/Plugin/Field/FieldType/DateTimeFieldItemList.php +++ b/core/modules/datetime/lib/Drupal/datetime/Plugin/Field/FieldType/DateTimeFieldItemList.php @@ -24,26 +24,33 @@ class DateTimeFieldItemList extends ConfigFieldItemList { * {@inheritdoc} */ public function defaultValuesForm(array &$form, array &$form_state) { - $default_value = parent::getDefaultValue(); + if (empty($this->getFieldDefinition()->default_value_function)) { + $default_value = $this->getFieldDefinition()->default_value; - $element = array( - '#parents' => array('default_value_input'), - 'default_date' => array( - '#type' => 'select', - '#title' => t('Default date'), - '#description' => t('Set a default value for this date.'), - '#default_value' => isset($default_value[0]['default_date']) ? $default_value[0]['default_date'] : '', - '#options' => array(static::DEFAULT_VALUE_NOW => t('The current date')), - '#empty_value' => '', - ) - ); + $element = array( + '#parents' => array('default_value_input'), + 'default_date' => array( + '#type' => 'select', + '#title' => t('Default date'), + '#description' => t('Set a default value for this date.'), + '#default_value' => isset($default_value[0]['default_date']) ? $default_value[0]['default_date'] : '', + '#options' => array(static::DEFAULT_VALUE_NOW => t('The current date')), + '#empty_value' => '', + ) + ); - return $element; + return $element; + } } /** * {@inheritdoc} */ + public function defaultValuesFormValidate(array $element, array &$form, array &$form_state) { } + + /** + * {@inheritdoc} + */ public function defaultValuesFormSubmit(array $element, array &$form, array &$form_state) { if ($form_state['values']['default_value_input']['default_date']) { return array($form_state['values']['default_value_input']); @@ -57,7 +64,7 @@ public function defaultValuesFormSubmit(array $element, array &$form, array &$fo public function getDefaultValue() { $default_value = parent::getDefaultValue(); - if ($default_value && $default_value[0]['default_date'] == static::DEFAULT_VALUE_NOW) { + if ($default_value && isset($default_value[0]['default_date']) && $default_value[0]['default_date'] == static::DEFAULT_VALUE_NOW) { // A default value should be in the format and timezone used for date // storage. $date = new DrupalDateTime('now', DATETIME_STORAGE_TIMEZONE); 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 df64d25..1918409 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 @@ -30,12 +30,12 @@ class DateTimeItem extends ConfigFieldItemBase implements PrepareCacheInterface { /** - * Defines the field type as date. + * Value for the 'datetime_type' setting: store only a date. */ const DATETIME_TYPE_DATE = 'date'; /** - * Defines the field type as datetime. + * Value for the 'datetime_type' setting: store a date and time. */ const DATETIME_TYPE_DATETIME = 'datetime';