You are here

function hs_menu_hierarchical_select_lineage in Hierarchical Select 6.3

Same name and namespace in other branches
  1. 5.3 modules/hs_menu.module \hs_menu_hierarchical_select_lineage()
  2. 7.3 modules/hs_menu.module \hs_menu_hierarchical_select_lineage()

Implementation of hook_hierarchical_select_lineage().

File

modules/hs_menu.module, line 110
Implementation of the Hierarchical Select API for the Menu module.

Code

function hs_menu_hierarchical_select_lineage($item, $params) {
  $lineage = array(
    $item,
  );
  list($menu_name, $mlid) = explode(':', $item);

  // If the initial mlid is zero, then this is the root level, so we don't
  // have to get the lineage.
  if ($mlid > 0) {

    // Prepend each parent mlid (i.e. plid) to the lineage.
    do {
      $plid = db_result(db_query("SELECT plid FROM {menu_links} WHERE mlid = %d", $mlid));
      array_unshift($lineage, "{$menu_name}:{$plid}");
      $mlid = $plid;
    } while ($plid > 0);
  }
  return $lineage;
}