You are here

function taxonomy_tools_publisher_reference_fields in Taxonomy Tools 7

Same name and namespace in other branches
  1. 8 taxonomy_tools_publisher/taxonomy_tools_publisher.module \taxonomy_tools_publisher_reference_fields()

Returns term reference fields.

Parameters

string $bundle: Node type.

2 calls to taxonomy_tools_publisher_reference_fields()
taxonomy_tools_publisher_node_insert in taxonomy_tools_publisher/taxonomy_tools_publisher.module
Implements hook_node_insert().
taxonomy_tools_publisher_node_update in taxonomy_tools_publisher/taxonomy_tools_publisher.module
Implements hook_node_update().

File

taxonomy_tools_publisher/taxonomy_tools_publisher.module, line 321
Drupal hooks and functions to manipulate taxonomy terms.

Code

function taxonomy_tools_publisher_reference_fields($bundle) {
  $fields = array();

  // Get term reference fields.
  $query = db_select('field_config', 'fc');
  $query
    ->addField('fc', 'field_name');
  $query
    ->addField('fc', 'data');
  $query
    ->condition('fc.deleted', 0);
  $query
    ->condition('fc.type', 'taxonomy_term_reference');
  $query
    ->join('field_config_instance', 'fci', 'fci.field_name = fc.field_name');
  $query
    ->condition('fci.entity_type', 'node');
  $query
    ->condition('fci.bundle', $bundle);
  $result = $query
    ->execute()
    ->fetchAll();
  $vocabularies = array_filter(variable_get('taxonomy_tools_publisher_config', array()));
  foreach ($result as $key => $field) {
    $data = unserialize($field->data);
    if (in_array($data['settings']['allowed_values'][0]['vocabulary'], $vocabularies)) {
      $fields[] = $field->field_name;
    }
  }
  return $fields;
}