Skip to content
Snippets Groups Projects
Verified Commit 8c4591e2 authored by Dave Long's avatar Dave Long
Browse files

Issue #3519271 by catch: ViewsViewsHooks queries all field storages twice

parent 8c477343
No related branches found
No related tags found
3 merge requests!5423Draft: Resolve #3329907 "Test2",!3478Issue #3337882: Deleted menus are not removed from content type config,!579Issue #2230909: Simple decimals fail to pass validation
Pipeline #491123 passed
Pipeline: drupal

#491124

    ......@@ -183,34 +183,13 @@ public function viewsData(): array {
    if (is_array($result)) {
    $data = NestedArray::mergeDeep($result, $data);
    }
    \Drupal::moduleHandler()->invoke($field_storage->getTypeProvider(), 'field_views_data_views_data_alter', [&$data, $field_storage]);
    }
    }
    }
    return $data;
    }
    /**
    * Implements hook_views_data_alter().
    *
    * Field modules can implement hook_field_views_data_views_data_alter() to
    * alter the views data on a per field basis. This is weirdly named so as not
    * to conflict with the \Drupal::moduleHandler()->alter('field_views_data') in
    * views_views_data().
    */
    #[Hook('views_data_alter')]
    public function viewsDataAlter(&$data): void {
    $entity_type_manager = \Drupal::entityTypeManager();
    if (!$entity_type_manager->hasDefinition('field_storage_config')) {
    return;
    }
    /** @var \Drupal\field\FieldStorageConfigInterface $field_storage */
    foreach ($entity_type_manager->getStorage('field_storage_config')->loadMultiple() as $field_storage) {
    if (\Drupal::service('views.field_data_provider')->getSqlStorageForField($field_storage)) {
    \Drupal::moduleHandler()->invoke($field_storage->getTypeProvider(), 'field_views_data_views_data_alter', [&$data, $field_storage]);
    }
    }
    }
    /**
    * Implements hook_field_views_data().
    *
    ......
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Please register or to comment