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;
}