You are here

function image_gallery_handler_field_gallery_cover::get_cover_node_nid_recurse in Image 6

Same name and namespace in other branches
  1. 7 contrib/image_gallery/views/image_gallery_handler_field_gallery_cover.inc \image_gallery_handler_field_gallery_cover::get_cover_node_nid_recurse()

Recursively query descendant tids until we get a cover nid.

Warning! This is probably quite intensive, as it drills down the term hierarchy doing a query on each term until it finds a node -- and this is done for EVERY row of the main gallery term view!

Parameters

$tid The tid whose children we should investigate for a cover nid.:

$recurse The current recursion depth.:

1 call to image_gallery_handler_field_gallery_cover::get_cover_node_nid_recurse()
image_gallery_handler_field_gallery_cover::get_cover_node_nid in contrib/image_gallery/views/image_gallery_handler_field_gallery_cover.inc
Get the cover nid for the current tid.

File

contrib/image_gallery/views/image_gallery_handler_field_gallery_cover.inc, line 185

Class

image_gallery_handler_field_gallery_cover
Parent class for field handlers that gives us a gallery cover.

Code

function get_cover_node_nid_recurse($tid, $recurse) {
  $tree = taxonomy_get_tree($this->vid, $tid, -1, 1);
  foreach ($tree as $term) {
    $where_clause = 'tn.tid = ' . $term->tid;
    $query = str_replace('***WHERE_CLAUSE***', $where_clause, $this->basic_query);
    if ($nid = db_result(db_query_range(db_rewrite_sql($query), '', 0, 1))) {
      return $nid;
    }

    // Recurse into this gallery, if we may.
    if ($this->options['depth'] > $recurse) {
      if ($nid = $this
        ->get_cover_node_nid_recurse($term->tid, $recurse + 1)) {
        return $nid;
      }
    }
  }
}