You are here

entity_browser.views.inc in Entity Browser 8

Same filename and directory in other branches
  1. 8.2 entity_browser.views.inc

Provide views data for entity_browser.module.

File

entity_browser.views.inc
View source
<?php

/**
 * @file
 * Provide views data for entity_browser.module.
 */
use Drupal\search_api\Entity\Index;

/**
 * Implements hook_views_data_alter().
 */
function entity_browser_views_data_alter(&$data) {
  foreach (\Drupal::entityTypeManager()
    ->getDefinitions() as $entity_type_name => $entity_type) {
    if ($base_table = $entity_type
      ->getBaseTable()) {
      $entity_keys = $entity_type
        ->get('entity_keys');
      $data[$base_table]['entity_browser_select'] = [
        'title' => t('Entity browser bulk select form'),
        'help' => t('Add a form element that lets you use a view as a base to select entities in entity browser.'),
        'field' => [
          'id' => 'entity_browser_select',
          'real field' => $entity_keys['id'],
        ],
      ];
      if (!empty($entity_keys['bundle'])) {
        $data[$base_table]['entity_browser_bundle'] = [
          'title' => t('Entity Browser Target Bundles'),
          'filter' => [
            'id' => 'entity_browser_bundle',
            'real field' => $entity_keys['bundle'],
          ],
        ];
      }
    }
  }
  if (\Drupal::moduleHandler()
    ->moduleExists('search_api')) {

    /** @var \Drupal\search_api\IndexInterface $index */
    foreach (Index::loadMultiple() as $index) {
      $key = 'search_api_index_' . $index
        ->id();
      $data[$key]['entity_browser_select'] = [
        'title' => t('Entity browser bulk select form for Search API views'),
        'help' => t('Add a form element that lets you use a view as a base to select entities in entity browser.'),
        'field' => [
          'id' => 'entity_browser_search_api_select',
          'real field' => 'id',
        ],
      ];
    }
  }
}

Functions