diff options
Diffstat (limited to 'modules/menu/menu.module')
-rw-r--r-- | modules/menu/menu.module | 43 |
1 files changed, 19 insertions, 24 deletions
diff --git a/modules/menu/menu.module b/modules/menu/menu.module index 936bdbd62..9bb693e01 100644 --- a/modules/menu/menu.module +++ b/modules/menu/menu.module @@ -147,31 +147,20 @@ function menu_block($op = 'list', $delta = 0) { } } -/** - * Implementation of hook_nodeapi(). - */ -function menu_nodeapi(&$node, $op) { - - if (user_access('administer menu')) { - switch ($op) { - case 'insert': - case 'update': - if ($node->menu['delete']) { - menu_node_form_delete($node); - menu_rebuild(); - } - elseif ($node->menu['title']) { - $node->menu['path'] = ($node->menu['path']) ? $node->menu['path'] : "node/$node->nid"; - menu_edit_item_save($node->menu); - menu_rebuild(); - } - break; +function menu_node_delete_confirm_submit($form_id, $form_values) { + menu_node_form_delete($form_values['node']); + menu_rebuild(); +} - case 'delete': - menu_node_form_delete($node); - menu_rebuild(); - break; - } +function menu_node_submit($form_id, $node) { + if ($node->menu['delete']) { + menu_node_form_delete($node); + menu_rebuild(); + } + elseif ($node->menu['title']) { + $node->menu['path'] = ($node->menu['path']) ? $node->menu['path'] : "node/$node->nid"; + menu_edit_item_save($node->menu); + menu_rebuild(); } } @@ -199,6 +188,8 @@ function menu_form_alter($form_id, &$form) { } } + $form['#submit']['menu_node_submit'] = array(); + $form['menu'] = array('#type' => 'fieldset', '#title' => t('Menu settings'), '#access' => user_access('administer menu'), @@ -259,6 +250,10 @@ function menu_form_alter($form_id, &$form) { ); } } + + if ($form_id == 'node_delete_confirm') { + $form['#submit']['menu_node_delete_confirm_submit'] = array(); + } } /** |