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);
}
}