You are here

public function DateTimeFieldItemList::defaultValuesForm in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 core/modules/datetime/src/Plugin/Field/FieldType/DateTimeFieldItemList.php \Drupal\datetime\Plugin\Field\FieldType\DateTimeFieldItemList::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 FieldItemList::defaultValuesForm

File

core/modules/datetime/src/Plugin/Field/FieldType/DateTimeFieldItemList.php, line 34
Contains \Drupal\datetime\Plugin\Field\FieldType\DateTimeFieldItemList.

Class

DateTimeFieldItemList
Represents a configurable entity datetime field.

Namespace

Drupal\datetime\Plugin\Field\FieldType

Code

public function defaultValuesForm(array &$form, FormStateInterface $form_state) {
  if (empty($this
    ->getFieldDefinition()
    ->getDefaultValueCallback())) {
    $default_value = $this
      ->getFieldDefinition()
      ->getDefaultValueLiteral();
    $element = array(
      '#parents' => array(
        'default_value_input',
      ),
      'default_date_type' => array(
        '#type' => 'select',
        '#title' => t('Default date'),
        '#description' => t('Set a default value for this date.'),
        '#default_value' => isset($default_value[0]['default_date_type']) ? $default_value[0]['default_date_type'] : '',
        '#options' => array(
          static::DEFAULT_VALUE_NOW => t('Current date'),
          static::DEFAULT_VALUE_CUSTOM => t('Relative date'),
        ),
        '#empty_value' => '',
      ),
      'default_date' => array(
        '#type' => 'textfield',
        '#title' => t('Relative default value'),
        '#description' => 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=\"@url\">@strtotime</a> for more details.", array(
          '@strtotime' => 'strtotime',
          '@url' => 'http://www.php.net/manual/en/function.strtotime.php',
        )),
        '#default_value' => isset($default_value[0]['default_date_type']) && $default_value[0]['default_date_type'] == static::DEFAULT_VALUE_CUSTOM ? $default_value[0]['default_date'] : '',
        '#states' => array(
          'visible' => array(
            ':input[id="edit-default-value-input-default-date-type"]' => array(
              'value' => static::DEFAULT_VALUE_CUSTOM,
            ),
          ),
        ),
      ),
    );
    return $element;
  }
}