You are here

function _search_api_views_get_field_vocabulary in Search API 7

Returns the vocabulary machine name of a term field.

Parameters

array|null $field_info: The field's field info array, or NULL if the field is not provided by the Field API. See the return value of field_info_field().

Return value

string|null If the field contains taxonomy terms of a single vocabulary (which could be determined), that vocabulary's machine name; NULL otherwise.

2 calls to _search_api_views_get_field_vocabulary()
search_api_views_views_data in contrib/search_api_views/search_api_views.views.inc
Implements hook_views_data().
_search_api_views_add_handlers in contrib/search_api_views/search_api_views.views.inc
Adds handler definitions for a field to a Views data table definition.

File

contrib/search_api_views/search_api_views.views.inc, line 316
Views hook implementations for the Search API Views module.

Code

function _search_api_views_get_field_vocabulary($field_info) {

  // Test for "Term reference" fields.
  if (isset($field_info['settings']['allowed_values'][0]['vocabulary'])) {
    return $field_info['settings']['allowed_values'][0]['vocabulary'];
  }
  elseif (isset($field_info['settings']['handler']) && $field_info['settings']['handler'] === 'base') {
    if (!empty($field_info['settings']['handler_settings']['target_bundles'])) {
      $bundles = $field_info['settings']['handler_settings']['target_bundles'];
      if (count($bundles) == 1) {
        return key($bundles);
      }
    }
  }
  return NULL;
}