diff --git a/modules/node/node.module b/modules/node/node.module index a85a91ca12baf2f1fd6de3543d62674286522f3e..c55cecfb67063a4462e7079a46917a1cb80364d2 100644 --- a/modules/node/node.module +++ b/modules/node/node.module @@ -1048,11 +1048,11 @@ function node_menu($may_cache) { ); $items[] = array('path' => 'node', 'title' => t('content'), - 'callback' => 'node_page', + 'callback' => 'node_page_default', 'access' => user_access('access content'), 'type' => MENU_MODIFIABLE_BY_ADMIN); $items[] = array('path' => 'node/add', 'title' => t('create content'), - 'callback' => 'node_page', + 'callback' => 'node_add', 'access' => user_access('access content'), 'type' => MENU_ITEM_GROUPING, 'weight' => 1); @@ -1082,13 +1082,16 @@ function node_menu($may_cache) { $node = node_load(arg(1)); if ($node->nid) { $items[] = array('path' => 'node/'. arg(1), 'title' => t('view'), - 'callback' => 'node_page', + 'callback' => 'node_page_view', + 'callback arguments' => array($node), 'access' => node_access('view', $node), 'type' => MENU_CALLBACK); $items[] = array('path' => 'node/'. arg(1) .'/view', 'title' => t('view'), - 'type' => MENU_DEFAULT_LOCAL_TASK, 'weight' => -10); + 'type' => MENU_DEFAULT_LOCAL_TASK, + 'weight' => -10); $items[] = array('path' => 'node/'. arg(1) .'/edit', 'title' => t('edit'), - 'callback' => 'node_page', + 'callback' => 'node_page_edit', + 'callback arguments' => array($node), 'access' => node_access('update', $node), 'weight' => 1, 'type' => MENU_LOCAL_TASK); @@ -1994,7 +1997,7 @@ function theme_node_form($form) { /** * Present a node submission form or a set of links to such forms. */ -function node_add($type) { +function node_add($type = NULL) { global $user; $types = node_get_types(); @@ -2238,7 +2241,7 @@ function node_revisions() { } /** - * Generate a listing of promoted nodes. + * Menu callback; Generate a listing of promoted nodes. */ function node_page_default() { $result = pager_query(db_rewrite_sql('SELECT n.nid, n.sticky, n.created FROM {node} n WHERE n.promote = 1 AND n.status = 1 ORDER BY n.sticky DESC, n.created DESC'), variable_get('default_nodes_main', 10)); @@ -2286,67 +2289,34 @@ function node_page_default() { ); $output = '<div id="first-time">'. $output .'</div>'; } + drupal_set_title(''); return $output; } /** - * Menu callback; dispatches control to the appropriate operation handler. + * Menu callback; view a single node. */ -function node_page() { - $op = arg(1); +function node_page_view($node, $cid = NULL) { + drupal_set_title(check_plain($node->title)); + return node_show($node, $cid); +} - if (is_numeric($op)) { - $op = (arg(2) && !is_numeric(arg(2))) ? arg(2) : 'view'; +/** + * Menu callback; presents the node editing form, or redirects to delete confirmation. + */ +function node_page_edit($node) { + if ($_POST['op'] == t('Delete')) { + // Note: we redirect from node/nid/edit to node/nid/delete to make the tabs disappear. + if ($_REQUEST['destination']) { + $destination = drupal_get_destination(); + unset($_REQUEST['destination']); + } + drupal_goto('node/'. $node->nid .'/delete', $destination); } - switch ($op) { - case 'view': - if (is_numeric(arg(1))) { - $node = node_load(arg(1)); - if ($node->nid) { - drupal_set_title(check_plain($node->title)); - return node_show($node, arg(2)); - } - else if (db_result(db_query('SELECT nid FROM {node} WHERE nid = %d', arg(1)))) { - drupal_access_denied(); - } - else { - drupal_not_found(); - } - } - break; - case 'add': - return node_add(arg(2)); - break; - case 'edit': - if ($_POST['op'] == t('Delete')) { - // Note: we redirect from node/uid/edit to node/uid/delete to make the tabs disappear. - if ($_REQUEST['destination']) { - $destination = drupal_get_destination(); - unset($_REQUEST['destination']); - } - drupal_goto('node/'. arg(1) .'/delete', $destination); - } - - if (is_numeric(arg(1))) { - $node = node_load(arg(1)); - if ($node->nid) { - drupal_set_title(check_plain($node->title)); - return node_form($node); - } - else if (db_result(db_query('SELECT nid FROM {node} WHERE nid = %d', arg(1)))) { - drupal_access_denied(); - } - else { - drupal_not_found(); - } - } - break; - default: - drupal_set_title(''); - return node_page_default(); - } + drupal_set_title(check_plain($node->title)); + return node_form($node); } /**