You are here

function _nodehierarcny_menu_save_node_menu_link in Node Hierarchy 7.4

Save a single Node Hierarchy menu item.

1 call to _nodehierarcny_menu_save_node_menu_link()
nodehierarchy_menu_node_save in nodehierarchy_menu/nodehierarchy_menu.module
Do the actual insertion or update.

File

nodehierarchy_menu/nodehierarchy_menu.module, line 249
Create menu items for a node based on the Node Hierarchy.

Code

function _nodehierarcny_menu_save_node_menu_link(&$menu_link, $node, $parent) {

  // Match the weight to the child weight (If there is a nodehierarchy record. Not always true at the top level).
  if ($parent->nhid) {
    $menu_link['weight'] = $parent->cweight;
  }
  $menu_link['hidden'] = $menu_link['enabled'] ? 0 : 1;

  // Update the paths (needed for new nodes).
  $menu_link['nid'] = $node->nid;
  $menu_link['link_path'] = 'node/' . $node->nid;
  if (empty($menu_link['customized'])) {
    $menu_link['link_title'] = $node->title;
  }
  if (isset($menu_link['description'])) {
    $menu_link['options']['attributes']['title'] = $menu_link['description'];
  }

  // Only save the menu if it exists already or is enabled.
  // @TODO: remove the menu link if it's not necessary (menu hidden and no children menus)
  if (!empty($menu_link['mlid']) || !$menu_link['hidden']) {

    // Get the plid from the parent node id or create if needed.
    $menu_link['plid'] = _nodehierarchy_menu_get_node_mlid($parent->pnid, TRUE);
    _nodehierarchy_menu_save_menu_link($menu_link);
  }
}