You are here

function ui_patterns_settings_form_field_storage_config_edit_form_alter in UI Patterns Settings 8.2

Implements hook_form_field_storage_config_edit_form_alter().

File

./ui_patterns_settings.module, line 28
Contains ui_patterns_settings.module.

Code

function ui_patterns_settings_form_field_storage_config_edit_form_alter(&$form, FormStateInterface $form_state) {

  /** @var \Drupal\field\Entity\FieldStorageConfig $entity */
  $entity = $form_state
    ->getFormObject()
    ->getEntity();
  array_unshift($form['actions']['submit']['#submit'], 'ui_patterns_settings_form_field_storage_config_edit_form_submit');
  $definitions = UiPatterns::getPatternDefinitions();
  $settings_options = [];
  foreach ($definitions as $definition) {
    $infos = UiPatternsSettings::getExposedPatternDefinition($definition, $entity
      ->getType());
    foreach ($infos as $key => $info) {
      $settings_options[$key] = $info['label'];
    }
  }
  if (count($settings_options) > 0) {
    $mapping = UiPatternsSettings::getConfigManager()
      ->getMapping($entity
      ->id());
    $form['settings']['use_pattern'] = [
      '#type' => 'checkbox',
      '#title' => t('Expose pattern setting'),
      '#default_value' => $mapping !== NULL,
      '#description' => '',
    ];
    $form['settings']['pattern_setting'] = [
      '#type' => 'select',
      '#options' => $settings_options,
      '#title' => 'Pattern Setting',
      '#states' => [
        'invisible' => [
          ':input[name="settings[use_pattern]"]' => [
            'checked' => FALSE,
          ],
        ],
      ],
      '#default_value' => $mapping,
    ];
  }
}