Loading config/schema/smart_date.schema.yml +8 −0 Original line number Diff line number Diff line Loading @@ -150,6 +150,14 @@ field.widget.settings.smartdate_default: type: boolean label: 'Hide end date unless different' field.widget.settings.smartdate_inline: type: field.widget.settings.smartdate_default label: 'Smart Date, date-only range widget settings' mapping: separator: type: string label: 'Separator string (separating start and end date)' field.widget.settings.smartdate_timezone: type: mapping label: 'Smart date timezone display format settings' Loading src/Plugin/Field/FieldWidget/SmartDateInlineWidget.php +39 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,15 @@ use Drupal\Core\Form\FormStateInterface; */ class SmartDateInlineWidget extends SmartDateDefaultWidget { /** * {@inheritdoc} */ public static function defaultSettings() { return [ 'separator' => 'to', ] + parent::defaultSettings(); } /** * {@inheritdoc} */ Loading @@ -39,7 +48,8 @@ class SmartDateInlineWidget extends SmartDateDefaultWidget { $element = array_merge(['time_wrapper' => $time_wrapper], $element); // Move the start and end elements into our new container. $element['time_wrapper']['value'] = $element['value']; $element['time_wrapper']['separator']['#markup'] = '<span class="smartdate--separator">' . $this->t('to') . '</span>'; $separator = empty($this->getSetting('separator')) ? $this->t('to') : $this->getSetting('separator'); $element['time_wrapper']['separator']['#markup'] = '<span class="smartdate--separator">' . $separator . '</span>'; $element['time_wrapper']['end_value'] = (isset($element['end_value'])) ? $element['end_value'] : $element['value']; unset($element['value']); unset($element['end_value']); Loading @@ -47,6 +57,34 @@ class SmartDateInlineWidget extends SmartDateDefaultWidget { return $element; } /** * {@inheritdoc} */ public function settingsForm(array $form, FormStateInterface $form_state) { $settings_form = parent::settingsForm($form, $form_state); $settings_form['separator'] = [ '#type' => 'textfield', '#title' => $this->t('Separator string (separating start and end date)'), '#default_value' => $this->getSetting('separator'), ]; return $settings_form; } /** * {@inheritdoc} */ public function settingsSummary() { $summary = parent::settingsSummary(); if (!empty($this->getSetting('separator'))) { $summary[] = $this->t('Separator string (separating start and end date): @separator', ['@separator' => $this->getSetting('separator')]); } return $summary; } /** * {@inheritdoc} */ Loading Loading
config/schema/smart_date.schema.yml +8 −0 Original line number Diff line number Diff line Loading @@ -150,6 +150,14 @@ field.widget.settings.smartdate_default: type: boolean label: 'Hide end date unless different' field.widget.settings.smartdate_inline: type: field.widget.settings.smartdate_default label: 'Smart Date, date-only range widget settings' mapping: separator: type: string label: 'Separator string (separating start and end date)' field.widget.settings.smartdate_timezone: type: mapping label: 'Smart date timezone display format settings' Loading
src/Plugin/Field/FieldWidget/SmartDateInlineWidget.php +39 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,15 @@ use Drupal\Core\Form\FormStateInterface; */ class SmartDateInlineWidget extends SmartDateDefaultWidget { /** * {@inheritdoc} */ public static function defaultSettings() { return [ 'separator' => 'to', ] + parent::defaultSettings(); } /** * {@inheritdoc} */ Loading @@ -39,7 +48,8 @@ class SmartDateInlineWidget extends SmartDateDefaultWidget { $element = array_merge(['time_wrapper' => $time_wrapper], $element); // Move the start and end elements into our new container. $element['time_wrapper']['value'] = $element['value']; $element['time_wrapper']['separator']['#markup'] = '<span class="smartdate--separator">' . $this->t('to') . '</span>'; $separator = empty($this->getSetting('separator')) ? $this->t('to') : $this->getSetting('separator'); $element['time_wrapper']['separator']['#markup'] = '<span class="smartdate--separator">' . $separator . '</span>'; $element['time_wrapper']['end_value'] = (isset($element['end_value'])) ? $element['end_value'] : $element['value']; unset($element['value']); unset($element['end_value']); Loading @@ -47,6 +57,34 @@ class SmartDateInlineWidget extends SmartDateDefaultWidget { return $element; } /** * {@inheritdoc} */ public function settingsForm(array $form, FormStateInterface $form_state) { $settings_form = parent::settingsForm($form, $form_state); $settings_form['separator'] = [ '#type' => 'textfield', '#title' => $this->t('Separator string (separating start and end date)'), '#default_value' => $this->getSetting('separator'), ]; return $settings_form; } /** * {@inheritdoc} */ public function settingsSummary() { $summary = parent::settingsSummary(); if (!empty($this->getSetting('separator'))) { $summary[] = $this->t('Separator string (separating start and end date): @separator', ['@separator' => $this->getSetting('separator')]); } return $summary; } /** * {@inheritdoc} */ Loading