You are here

public function DateRecurItem::storageSettingsForm in Recurring Dates Field 8

Same name and namespace in other branches
  1. 8.2 src/Plugin/Field/FieldType/DateRecurItem.php \Drupal\date_recur\Plugin\Field\FieldType\DateRecurItem::storageSettingsForm()
  2. 3.x src/Plugin/Field/FieldType/DateRecurItem.php \Drupal\date_recur\Plugin\Field\FieldType\DateRecurItem::storageSettingsForm()
  3. 3.0.x src/Plugin/Field/FieldType/DateRecurItem.php \Drupal\date_recur\Plugin\Field\FieldType\DateRecurItem::storageSettingsForm()
  4. 3.1.x src/Plugin/Field/FieldType/DateRecurItem.php \Drupal\date_recur\Plugin\Field\FieldType\DateRecurItem::storageSettingsForm()

Returns a form for the storage-level settings.

Invoked from \Drupal\field_ui\Form\FieldStorageConfigEditForm to allow administrators to configure storage-level settings.

Field storage might reject settings changes that affect the field storage schema if the storage already has data. When the $has_data parameter is TRUE, the form should not allow changing the settings that take part in the schema() method. It is recommended to set #access to FALSE on the corresponding elements.

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.

bool $has_data: TRUE if the field already has data, FALSE if not.

Return value

array The form definition for the field settings.

Overrides DateRangeItem::storageSettingsForm

File

src/Plugin/Field/FieldType/DateRecurItem.php, line 99

Class

DateRecurItem
Plugin implementation of the 'date_recur' field type.

Namespace

Drupal\date_recur\Plugin\Field\FieldType

Code

public function storageSettingsForm(array &$form, FormStateInterface $form_state, $has_data) {
  $elements = parent::storageSettingsForm($form, $form_state, $has_data);
  $handler_options = [];

  /** @var DateRecurOccurrenceHandlerManager $manager */
  $manager = \Drupal::getContainer()
    ->get('plugin.manager.date_recur_occurrence_handler');
  foreach ($manager
    ->getDefinitions() as $id => $definition) {
    $handler_options[$id] = $definition['label'];
  }
  $elements['occurrence_handler_plugin'] = [
    '#type' => 'select',
    '#title' => t('Occurrence handler'),
    '#description' => t('Select an occurrence handler for calculating, saving and retrieving occurrences.'),
    '#options' => $handler_options,
    '#default_value' => $this
      ->getSetting('occurrence_handler_plugin'),
  ];
  return $elements;
}