function panels_term_parent_context in Panels 6.2
Same name and namespace in other branches
- 5.2 relationships/term_parent.inc \panels_term_parent_context()
Return a new context based on an existing context
1 string reference to 'panels_term_parent_context'
- panels_term_parent_panels_relationships in relationships/
term_parent.inc - @file relationships/term_parent.inc
File
- relationships/
term_parent.inc, line 26 - relationships/term_parent.inc
Code
function panels_term_parent_context($context = NULL, $conf) {
// If unset it wants a generic, unfilled context, which is just NULL
if (empty($context->data)) {
return panels_context_create_empty('term');
}
if (isset($context->data)) {
$result = db_fetch_array(db_query("SELECT t1.* FROM {term_hierarchy} t1 INNER JOIN {term_hierarchy} t2 ON t1.tid = t2.parent WHERE t2.tid = %d", $context->data->tid));
// If top level term, keep looking up until we see a top level.
if ($conf['type'] == 'top') {
// If looking for top level, and there are no parents at all, make sure
// the current term is the 'top level'.
if (empty($result)) {
$result['tid'] = $context->data->tid;
}
while (!empty($result['parent'])) {
$result = db_fetch_array(db_query("SELECT * FROM {term_hierarchy} WHERE tid = %d", $result['parent']));
}
}
// load the term
if ($result) {
$term = taxonomy_get_term($result['tid']);
return panels_context_create('term', $term);
}
}
}