You are here

public function FilterSettingsForm::getReferencedTaxonomyFields in Open Social 10.0.x

Same name and namespace in other branches
  1. 10.3.x modules/social_features/social_activity/modules/social_activity_filter/src/Form/FilterSettingsForm.php \Drupal\social_activity_filter\Form\FilterSettingsForm::getReferencedTaxonomyFields()
  2. 10.1.x modules/social_features/social_activity/modules/social_activity_filter/src/Form/FilterSettingsForm.php \Drupal\social_activity_filter\Form\FilterSettingsForm::getReferencedTaxonomyFields()
  3. 10.2.x modules/social_features/social_activity/modules/social_activity_filter/src/Form/FilterSettingsForm.php \Drupal\social_activity_filter\Form\FilterSettingsForm::getReferencedTaxonomyFields()

Helper function to find all referenced taxonomy fields.

Parameters

array $vocabulary_list: Array of vocabulary id's.

Return value

array Mapped array: vid => taxonomy_field.

1 call to FilterSettingsForm::getReferencedTaxonomyFields()
FilterSettingsForm::submitForm in modules/social_features/social_activity/modules/social_activity_filter/src/Form/FilterSettingsForm.php
Form submission handler.

File

modules/social_features/social_activity/modules/social_activity_filter/src/Form/FilterSettingsForm.php, line 162

Class

FilterSettingsForm
Provides a settings form of activity filter.

Namespace

Drupal\social_activity_filter\Form

Code

public function getReferencedTaxonomyFields(array $vocabulary_list) {
  $content_types = $this->entityTypeManager
    ->getStorage('node_type')
    ->loadMultiple();
  $field_names = [];
  foreach ($vocabulary_list as $vocabulary) {
    foreach ($content_types as $content_type => $type) {
      $field_definitions = $this->entityFieldManager
        ->getFieldDefinitions('node', $content_type);
      foreach ($field_definitions as $field_definition) {
        if ($field_definition
          ->getType() == 'entity_reference' && $field_definition
          ->getSetting('target_type') == 'taxonomy_term') {
          $handler_settings = $field_definition
            ->getSetting('handler_settings');
          if (isset($handler_settings['target_bundles'][$vocabulary])) {
            if (isset($field_names[$vocabulary])) {
              continue;
            }
            $field_names[$vocabulary] = $field_definition
              ->getName();
          }
        }
      }
    }
  }
  return $field_names;
}