function smartqueue_taxonomy_get_parents in Nodequeue 6.2
Same name and namespace in other branches
- 7.3 smartqueue.module \smartqueue_taxonomy_get_parents()
- 7.2 modules/smartqueue/smartqueue.module \smartqueue_taxonomy_get_parents()
Get the top-level parents of the given taxonomy terms.
Parameters
$tids, an array of taxonomy IDs:
Return value
an array of taxonomy IDs
1 call to smartqueue_taxonomy_get_parents()
- smartqueue_taxonomy_nodequeue_subqueues in ./
smartqueue.module - Implementation of hook_nodequeue_subqueues()
File
- ./
smartqueue.module, line 338
Code
function smartqueue_taxonomy_get_parents($tids) {
if ($tids) {
$top_level_tids = array();
foreach ($tids as $tid) {
$result = db_query(db_rewrite_sql("SELECT t.tid, t.* FROM {term_data} t INNER JOIN {term_hierarchy} h ON h.parent = t.tid WHERE h.tid = %d ORDER BY weight, name", 't', 'tid'), $tid);
$parents = array();
// This will filter out some duplicates.
while ($parent = db_fetch_object($result)) {
$parents[$parent->tid] = $parent->tid;
}
if (count($parents)) {
$parent_tid = smartqueue_taxonomy_get_parents($parents);
$top_level_tids = array_merge($parent_tid, $top_level_tids);
}
else {
$top_level_tids[] = $tid;
}
}
return array_unique($top_level_tids);
}
else {
return array();
}
}