You are here

function oa_core_get_entity_vocabs in Open Atrium Core 7.2

Return vocabularies assigned to a specific content type

File

includes/oa_core.util.inc, line 1263
Code for Utility functions for OpenAtrium spaces

Code

function oa_core_get_entity_vocabs($entity_type, $bundle) {
  $vocabs = array();
  $fields = field_info_instances($entity_type, $bundle);
  foreach ($fields as $field_name => $field) {
    $info = field_info_field($field_name);

    // handle normal taxonomy_term_reference fields
    if ($info['type'] == 'taxonomy_term_reference') {
      foreach ($info['settings']['allowed_values'] as $value) {
        if (!empty($value['vocabulary'])) {
          $vocabs[$value['vocabulary']] = $value['vocabulary'];
        }
      }
    }
    elseif ($info['type'] == 'entityreference' && $info['settings']['target_type'] == 'taxonomy_term') {
      if (!empty($info['settings']['handler_settings']['target_bundles'])) {
        foreach ($info['settings']['handler_settings']['target_bundles'] as $value) {
          $vocabs[$value] = $value;
        }
      }
    }
  }
  return $vocabs;
}