public function LibraryItemSettingsForm::submitForm

File

paragraphs/modules/paragraphs_library/src/Form/LibraryItemSettingsForm.php, line 113

Class

LibraryItemSettingsForm
Form for Paragraphs library item settings.

Namespace

Drupal\paragraphs_library\Form

Code

public function submitForm(array &$form, FormStateInterface $form_state) {

  // Get only the values related to the paragraph selection handler form.
  $values = $form_state
    ->getValues();
  $paragraph_selection_handler = $this
    ->getParagraphSelectionHandler();
  $paragraph_selection_form = $paragraph_selection_handler
    ->buildConfigurationForm([], $form_state);
  $paragraph_selection_form_values = array_intersect_key($values, $paragraph_selection_form);

  // Get existing paragraphs selection settings.
  $fields = $this->entityFieldManager
    ->getFieldDefinitions('paragraphs_library_item', 'paragraphs_library_item');
  $paragraphs_config = $fields['paragraphs']
    ->getConfig('paragraphs_library_item');
  $settings = $paragraphs_config
    ->getSettings();

  // Save the new handler settings.
  $settings['handler_settings'] = $paragraph_selection_form_values;
  $settings['handler'] = 'default:paragraph';
  $paragraphs_config
    ->setSettings($settings)
    ->save();
  $this->entityFieldManager
    ->clearCachedFieldDefinitions();
}