You are here

public function DateRangeFieldItemList::defaultValuesForm in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/datetime_range/src/Plugin/Field/FieldType/DateRangeFieldItemList.php \Drupal\datetime_range\Plugin\Field\FieldType\DateRangeFieldItemList::defaultValuesForm()
  2. 10 core/modules/datetime_range/src/Plugin/Field/FieldType/DateRangeFieldItemList.php \Drupal\datetime_range\Plugin\Field\FieldType\DateRangeFieldItemList::defaultValuesForm()

Returns a form for the default value input.

Invoked from \Drupal\field_ui\Form\FieldConfigEditForm to allow administrators to configure instance-level default value.

Parameters

array $form: The form where the settings form is being included in.

\Drupal\Core\Form\FormStateInterface $form_state: The form state of the (entire) configuration form.

Return value

array The form definition for the field default value.

Overrides DateTimeFieldItemList::defaultValuesForm

File

core/modules/datetime_range/src/Plugin/Field/FieldType/DateRangeFieldItemList.php, line 21

Class

DateRangeFieldItemList
Represents a configurable entity daterange field.

Namespace

Drupal\datetime_range\Plugin\Field\FieldType

Code

public function defaultValuesForm(array &$form, FormStateInterface $form_state) {
  if (empty($this
    ->getFieldDefinition()
    ->getDefaultValueCallback())) {
    $default_value = $this
      ->getFieldDefinition()
      ->getDefaultValueLiteral();
    $element = parent::defaultValuesForm($form, $form_state);
    $element['default_date_type']['#title'] = $this
      ->t('Default start date');
    $element['default_date_type']['#description'] = $this
      ->t('Set a default value for the start date.');
    $element['default_end_date_type'] = [
      '#type' => 'select',
      '#title' => $this
        ->t('Default end date'),
      '#description' => $this
        ->t('Set a default value for the end date.'),
      '#default_value' => isset($default_value[0]['default_end_date_type']) ? $default_value[0]['default_end_date_type'] : '',
      '#options' => [
        static::DEFAULT_VALUE_NOW => $this
          ->t('Current date'),
        static::DEFAULT_VALUE_CUSTOM => $this
          ->t('Relative date'),
      ],
      '#empty_value' => '',
    ];
    $element['default_end_date'] = [
      '#type' => 'textfield',
      '#title' => $this
        ->t('Relative default value'),
      '#description' => $this
        ->t("Describe a time by reference to the current day, like '+90 days' (90 days from the day the field is created) or '+1 Saturday' (the next Saturday). See <a href=\"http://php.net/manual/function.strtotime.php\">strtotime</a> for more details."),
      '#default_value' => isset($default_value[0]['default_end_date_type']) && $default_value[0]['default_end_date_type'] == static::DEFAULT_VALUE_CUSTOM ? $default_value[0]['default_end_date'] : '',
      '#states' => [
        'visible' => [
          ':input[id="edit-default-value-input-default-end-date-type"]' => [
            'value' => static::DEFAULT_VALUE_CUSTOM,
          ],
        ],
      ],
    ];
    return $element;
  }
}