You are here

function flag_lists_entity_extra_field_info_alter in Flag Lists 4.0.x

Implements hook_entity_extra_field_info_alter().

File

./flag_lists.module, line 298
Contains flag_lists.module.

Code

function flag_lists_entity_extra_field_info_alter(&$info) {
  $flagListsService = \Drupal::service('flaglists');
  $config = \Drupal::config('flag_lists.settings');
  if ($config
    ->get('hide_collections_in_displays')) {
    $flaggingCollections = $flagListsService
      ->getAllFlaggingCollections();
    foreach ($flaggingCollections as $collection) {
      if ($relatedFlag = $collection
        ->getRelatedFlag()) {
        $entityType = $relatedFlag
          ->getFlaggableEntityTypeId();
        $bundles = $relatedFlag
          ->getApplicableBundles();
        foreach ($bundles as $bundle) {
          unset($info[$entityType][$bundle]['display']['flag_' . $relatedFlag
            ->id()]);
        }
      }
    }
  }
  if ($config
    ->get('hide_templates_in_displays')) {
    $flagService = \Drupal::service('flag');
    $flagForLists = $flagListsService
      ->getAllFlagForList();
    foreach ($flagForLists as $template) {
      if ($baseFlag = $template
        ->getBaseFlag()) {
        if (!empty($flag = $flagService
          ->getFlagById($baseFlag))) {
          $entityType = $flag
            ->getFlaggableEntityTypeId();
          $bundles = $flag
            ->getApplicableBundles();
          foreach ($bundles as $bundle) {
            unset($info[$entityType][$bundle]['display']['flag_' . $flag
              ->id()]);
          }
        }
      }
    }
  }
}