You are here

function panels_term_parent_context in Panels 5.2

Same name and namespace in other branches
  1. 6.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);
    }
  }
}