You are here

function search_api_glossary_search_api_index_fields_submit in Search API AZ Glossary 8

Same name and namespace in other branches
  1. 8.2 search_api_glossary.module \search_api_glossary_search_api_index_fields_submit()

Save search_api_glossary settings for Search API Index configuration.

1 string reference to 'search_api_glossary_search_api_index_fields_submit'
search_api_glossary_form_search_api_index_fields_alter in ./search_api_glossary.module
Add search_api_glossary settings to Search API Index configuration.

File

./search_api_glossary.module, line 161
Search api glossary module file.

Code

function search_api_glossary_search_api_index_fields_submit($form, FormStateInterface $form_state) {
  $values = $form_state
    ->getValues();
  $fields = $values['fields'];
  $entity = $form_state
    ->getFormObject()
    ->getEntity();
  $field_settings_array = $entity
    ->get('field_settings');

  // TODO Cleanup this as per Drupal standards.
  \Drupal::configFactory()
    ->reset('search_api_glossary.settings');
  $config = \Drupal::configFactory()
    ->getEditable('search_api_glossary.settings');
  foreach ($fields as $field_name => $field_values) {
    $glossary_field_id = 'field_glossaryaz_' . $field_name;
    $config_values = array(
      'enabled' => 0,
      'field_type' => $field_values['type'],
      'field_name' => $field_name,
      'label' => $field_settings_array[$field_name]['label'],
      'glossary_field_id' => $glossary_field_id,
      'glossary_field_name' => 'AZ Glossary - ' . $field_settings_array[$field_name]['label'],
      'glossary_field_desc' => 'Glossary field for ' . $field_settings_array[$field_name]['label'] . '.',
    );
    if (isset($field_values['glossary_az']) && $field_values['glossary_az'] == 1) {
      $config_values['enabled'] = 1;
      $config_values['glossary_az_grouping'] = $field_values['glossary_az_grouping'];
    }

    // Set the variables.
    $config
      ->set($field_name, $config_values)
      ->save();
  }
  drupal_set_message(t("Glossary fields have been created for the chosen fields. These newly created Glossary fields can now be added by clicking on ADD FIELDS button."));
}