function ctools_term_parent_context in Chaos Tool Suite (ctools) 6
Same name and namespace in other branches
- 7 plugins/relationships/term_parent.inc \ctools_term_parent_context()
Return a new context based on an existing context.
1 string reference to 'ctools_term_parent_context'
- term_parent.inc in plugins/
relationships/ term_parent.inc - relationships/term_parent.inc Plugin to provide an relationship handler for term parent.
File
- plugins/
relationships/ term_parent.inc, line 25 - relationships/term_parent.inc Plugin to provide an relationship handler for term parent.
Code
function ctools_term_parent_context($context, $conf) {
// If unset it wants a generic, unfilled context, which is just NULL.
if (empty($context->data)) {
return ctools_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 ctools_context_create('term', $term);
}
}
}