You are here

function taxonomy_tools_associated_nodes in Taxonomy Tools 8

Same name and namespace in other branches
  1. 7 taxonomy_tools.module \taxonomy_tools_associated_nodes()

Fetches ID's of all nodes associated with specific taxonomy term.

Parameters

string $tid: A string containing taxonomy term ID.

Return value

array An array containing all associated node ID's.

1 call to taxonomy_tools_associated_nodes()
taxonomy_tools_rebuild_access_grants in ./taxonomy_tools.module
Builds new access grants for nodes associated with specific taxonomy term.

File

./taxonomy_tools.module, line 331
Drupal hooks and functions to work with taxonomy terms.

Code

function taxonomy_tools_associated_nodes($tid) {
  $nids = array();

  // Get all associated node ID's.
  $query = db_select('taxonomy_index', 'foo');
  $query
    ->addField('foo', 'nid');
  $query
    ->condition('foo.tid', $tid);
  $query
    ->execute();
  $result = $query
    ->execute()
    ->fetchAll();
  foreach ($result as $data) {
    $nids[] = $data->nid;
  }

  // Check if this term has any children.
  $query = db_select('taxonomy_term_hierarchy', 'foo');
  $query
    ->addField('foo', 'tid');
  $query
    ->condition('foo.parent', $tid);
  $result = $query
    ->execute()
    ->fetchAll();
  foreach ($result as $data) {

    // Nodes associated with children terms could also be affected;
    // fetch those nids also.
    $nids = array_merge($nids, taxonomy_tools_associated_nodes($data->tid));
  }
  return $nids;
}