/** * {@inheritdoc} */ public function settingsForm(array $form, FormStateInterface $form_state) { $element = parent::settingsForm($form, $form_state); $element['date_order'] = ['#type' => 'select', '#title' => $this->t('Date part order'), '#default_value' => $this->getSetting('date_order'), '#options' => ['MDY' => $this->t('Month/Day/Year'), 'DMY' => $this->t('Day/Month/Year'), 'YMD' => $this->t('Year/Month/Day')]]; if ($this->getFieldSetting('datetime_type') == DateRangeItem::DATETIME_TYPE_DATETIME) { $element['time_type'] = ['#type' => 'select', '#title' => $this->t('Time type'), '#default_value' => $this->getSetting('time_type'), '#options' => ['24' => $this->t('24 hour time'), '12' => $this->t('12 hour time')]]; $element['increment'] = ['#type' => 'select', '#title' => $this->t('Time increments'), '#default_value' => $this->getSetting('increment'), '#options' => [1 => $this->t('1 minute'), 5 => $this->t('5 minute'), 10 => $this->t('10 minute'), 15 => $this->t('15 minute'), 30 => $this->t('30 minute')]]; } else { $element['time_type'] = ['#type' => 'hidden', '#value' => 'none']; $element['increment'] = ['#type' => 'hidden', '#value' => $this->getSetting('increment')]; } return $element; }
/** * {@inheritdoc} */ public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) { $element = parent::formElement($items, $delta, $element, $form, $form_state); // Identify the type of date and time elements to use. switch ($this->getFieldSetting('datetime_type')) { case DateRangeItem::DATETIME_TYPE_DATE: case DateRangeItem::DATETIME_TYPE_ALLDAY: $date_type = 'date'; $time_type = 'none'; $date_format = $this->dateStorage->load('html_date')->getPattern(); $time_format = ''; break; default: $date_type = 'date'; $time_type = 'time'; $date_format = $this->dateStorage->load('html_date')->getPattern(); $time_format = $this->dateStorage->load('html_time')->getPattern(); break; } $element['value'] += ['#date_date_format' => $date_format, '#date_date_element' => $date_type, '#date_date_callbacks' => [], '#date_time_format' => $time_format, '#date_time_element' => $time_type, '#date_time_callbacks' => []]; $element['end_value'] += ['#date_date_format' => $date_format, '#date_date_element' => $date_type, '#date_date_callbacks' => [], '#date_time_format' => $time_format, '#date_time_element' => $time_type, '#date_time_callbacks' => []]; return $element; }