You are here

public function SmartDateCustomFormatter::settingsForm in Smart Date 3.4.x

Same name and namespace in other branches
  1. 8.2 src/Plugin/Field/FieldFormatter/SmartDateCustomFormatter.php \Drupal\smart_date\Plugin\Field\FieldFormatter\SmartDateCustomFormatter::settingsForm()
  2. 8 src/Plugin/Field/FieldFormatter/SmartDateCustomFormatter.php \Drupal\smart_date\Plugin\Field\FieldFormatter\SmartDateCustomFormatter::settingsForm()
  3. 3.x src/Plugin/Field/FieldFormatter/SmartDateCustomFormatter.php \Drupal\smart_date\Plugin\Field\FieldFormatter\SmartDateCustomFormatter::settingsForm()
  4. 3.0.x src/Plugin/Field/FieldFormatter/SmartDateCustomFormatter.php \Drupal\smart_date\Plugin\Field\FieldFormatter\SmartDateCustomFormatter::settingsForm()
  5. 3.1.x src/Plugin/Field/FieldFormatter/SmartDateCustomFormatter.php \Drupal\smart_date\Plugin\Field\FieldFormatter\SmartDateCustomFormatter::settingsForm()
  6. 3.2.x src/Plugin/Field/FieldFormatter/SmartDateCustomFormatter.php \Drupal\smart_date\Plugin\Field\FieldFormatter\SmartDateCustomFormatter::settingsForm()
  7. 3.3.x src/Plugin/Field/FieldFormatter/SmartDateCustomFormatter.php \Drupal\smart_date\Plugin\Field\FieldFormatter\SmartDateCustomFormatter::settingsForm()

Returns a form to configure settings for the formatter.

Invoked from \Drupal\field_ui\Form\EntityDisplayFormBase to allow administrators to configure the formatter. The field_ui module takes care of handling submitted form values.

Parameters

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

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Return value

array The form elements for the formatter settings.

Overrides TimestampFormatter::settingsForm

File

src/Plugin/Field/FieldFormatter/SmartDateCustomFormatter.php, line 47

Class

SmartDateCustomFormatter
Plugin implementation of the 'Custom' formatter for 'smartdate' fields.

Namespace

Drupal\smart_date\Plugin\Field\FieldFormatter

Code

public function settingsForm(array $form, FormStateInterface $form_state) {
  $form = parent::settingsForm($form, $form_state);

  // Don't need format_type provided by parent, so unset.
  unset($form['format_type']);
  $form['separator'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Time separator'),
    '#description' => $this
      ->t('The string to separate the start and end times. Include spaces before and after if those are desired.'),
    '#default_value' => $this
      ->getSetting('separator'),
  ];
  $form['join'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('Date/time join'),
    '#description' => $this
      ->t('The characters that will be used to join dates and their associated times.'),
    '#default_value' => $this
      ->getSetting('join'),
  ];
  $form['time_format'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('PHP Time Format'),
    '#description' => $this
      ->t('The PHP date code to use for formatting times.'),
    '#default_value' => $this
      ->getSetting('time_format'),
  ];
  $form['time_hour_format'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('PHP Time Format - on the hour'),
    '#description' => $this
      ->t('The PHP date code to use for formatting times that fall on the hour. Examples might be 2pm or 14h. Leave this blank to always use the standard format specified above.'),
    '#default_value' => $this
      ->getSetting('time_format'),
  ];
  $form['date_format'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('PHP Date Format'),
    '#description' => $this
      ->t('The PHP date code to use for formatting dates.'),
    '#default_value' => $this
      ->getSetting('date_format'),
  ];
  $form['allday_label'] = [
    '#type' => 'textfield',
    '#title' => $this
      ->t('All Day Label'),
    '#description' => $this
      ->t('What to output when an event has been set to run all day. Leave blank to only show the date.'),
    '#default_value' => $this
      ->getSetting('allday_label'),
  ];
  $form['date_first'] = [
    '#type' => 'select',
    '#title' => $this
      ->t('First part shown'),
    '#description' => $this
      ->t('Specify whether the time or date should be shown first.'),
    '#default_value' => $this
      ->getSetting('first'),
    '#options' => [
      '1' => $this
        ->t('Date'),
      '0' => $this
        ->t('Time'),
    ],
  ];
  $form['ampm_reduce'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Reduce AM/PM display'),
    '#description' => $this
      ->t("Don't show am/pm in the start time if it's the same as the value for the end time, in the same day. Note that this is recommended by the Associated Press style guide."),
    '#default_value' => $this
      ->getSetting('ampm_reduce'),
  ];
  $form['site_time_toggle'] = [
    '#type' => 'checkbox',
    '#title' => $this
      ->t('Turn off site time display'),
    '#description' => $this
      ->t("Don't show default site time in parentheses at end of the value."),
    '#default_value' => $this
      ->getSetting('site_time_toggle'),
  ];
  return $form;
}