function _nodehierarchy_create_menu in Node Hierarchy 6
Same name and namespace in other branches
- 5 nodehierarchy.module \_nodehierarchy_create_menu()
 
Create a menu item if the user selects one.
1 call to _nodehierarchy_create_menu()
- nodehierarchy_nodehierarchyapi in ./
nodehierarchy.module  - Implementation of hook_nodehierarchyapi(). Responds to own api calls.
 
File
- ./
nodehierarchy.module, line 1006  
Code
function _nodehierarchy_create_menu(&$node) {
  // If the menu is to be (re)created set the values to that derived by the hierarchy.
  if (function_exists('menu_link_save') && variable_get('nodehierarchy_menus', TRUE) && (user_access('administer menu') || variable_get('nodehierarchy_menu_noadmin', FALSE)) && @$node->nodehierarchy_create_menu) {
    $item = $node->menu;
    if ($parent_menu = _nodehierarchy_get_menu($node->parent)) {
      $item['plid'] = $parent_menu['mlid'];
    }
    else {
      $item['parent'] = variable_get('nodehierarchy_menus_default', 'primary-links:0');
      list($item['menu_name'], $item['plid']) = explode(":", $item['parent']);
    }
    $item['link_title'] = trim($node->title);
    $item['link_path'] = "node/{$node->nid}";
    // Editable menu weight range used to start at -10.
    $item['weight'] = $node->order_by - 11;
    if (!menu_link_save($item)) {
      drupal_set_message(t('There was an error saving the menu link.'), 'error');
    }
    // Prevent the menu.module saving the menu itself in case
    // the module is called after this one.
    unset($node->menu);
    // Prevent the this module from attempting to create a menu twice.
    $node->nodehierarchy_create_menu = FALSE;
  }
}