--- favorite_nodes.module 2006-07-10 15:17:45.000000000 -0400 +++ favorite_nodes.module.new 2006-11-21 11:13:40.000000000 -0500 @@ -72,7 +72,7 @@ '#type' => 'fieldset', '#title' => t('Enable favorites for these node types'), ); - + foreach(node_get_types() as $type => $name) { $form[$set][FAVORITE_NODES_NODE_TYPE . $type] = array( '#type' => 'checkbox', @@ -89,12 +89,17 @@ global $user; $nid = (int)arg(2); - db_query("INSERT INTO {favorite_nodes} (nid, uid, last) VALUES (%d, %d, %d)", $nid, $user->uid, time()); - - drupal_set_message(t('The node was added to your favorites')); - - drupal_goto("node/$nid"); -} + if ($nid) { + $node = node_load($nid); + if ($node->nid) { + db_query("DELETE FROM {favorite_nodes} WHERE nid=%d AND uid=%d", $nid, $user->uid); + db_query("INSERT INTO {favorite_nodes} (nid, uid, last) VALUES (%d, %d, %d)", $nid, $user->uid, time()); + drupal_set_message(t('The %node was added to your favorites.', array('%node' => _node_names('name', $node)))); + drupal_goto("node/$nid"); + } + } + drupal_not_found(); +} function favorite_nodes_delete() { global $user; @@ -142,7 +147,7 @@ if (variable_get(FAVORITE_NODES_NODE_TYPE . $type, 0)) { $fav_list[] = array( 'title' => $type, - 'value' => l(t("Favorite $name"), "favorite_nodes/view/$user->uid/$type"), + 'value' => l(t("Favorite $name"), "favorite_nodes/view/$user->uid/$name"), ); } }