? 593858-1.patch ? 593858.patch ? draggableviews_handler_nodequeue.inc ? nodequeue_adding_empty_node_does_no_delete.patch ? nodequeue_index_notice.patch ? nodequeue_install.patch ? addons/.DS_Store Index: nodequeue.install =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/nodequeue/nodequeue.install,v retrieving revision 1.17 diff -u -p -r1.17 nodequeue.install --- nodequeue.install 29 Sep 2009 16:22:56 -0000 1.17 +++ nodequeue.install 3 Oct 2009 20:18:58 -0000 @@ -387,6 +387,22 @@ function nodequeue_update_6001() { //The previous 6002 update has been moved to 5205. +/* + * Remove invalid entries from the nodequeue_nodes table created as a result of bugs like http://drupal.org/node/593858. + */ +function nodequeue_update_6003() { + $ret = array(); + $invalid = db_result(db_query("SELECT count(nid) FROM {nodequeue_nodes} WHERE nid = 0")); + if (!empty($invalid)) { + db_query("DELETE FROM {nodequeue_nodes} WHERE nid = 0"); + $t = get_t(); + $ret[] = array('success' => TRUE, 'query' => $t("Deleted @invalid invalid entries from the {nodequeue_nodes} table.", array('@invalid' => $invalid))); + } + else { + $ret[] = array('success' => TRUE, 'query' => "No invalid entries found in the {nodequeue_nodes} table."); + } + return $ret; +} function nodequeue_install() { drupal_install_schema('nodequeue'); } Index: nodequeue.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/nodequeue/nodequeue.module,v retrieving revision 1.93 diff -u -p -r1.93 nodequeue.module --- nodequeue.module 29 Sep 2009 16:25:08 -0000 1.93 +++ nodequeue.module 3 Oct 2009 20:19:00 -0000 @@ -1121,7 +1121,7 @@ function nodequeue_arrange_subqueue_form '#value' => t('Clear'), '#submit' => array('nodequeue_arrange_subqueue_form_clear_submit'), ); - + $form['#validate'][] = 'nodequeue_arrange_subqueue_form_add_validate'; // disable all buttons if the queue is empty if ($count == 0) { $form['submit']['#disabled'] = TRUE; @@ -1279,10 +1279,12 @@ function nodequeue_arrange_subqueue_form function nodequeue_arrange_subqueue_form_add_submit($form, &$form_state) { $queue = nodequeue_load($form['#queue']['qid']); $subqueue = nodequeue_load_subqueue($form['#subqueue']['sqid']); - if (!empty($form_state['values']['add']['nid'])) { preg_match('/\[nid: (\d+)\]$/', $form_state['values']['add']['nid'], $matches); $nid = $matches[1]; + if (empty($nid)) { + form_set_error('', t('Please enter a valid node title.')); + } } nodequeue_subqueue_add($queue, $subqueue, $nid); @@ -1995,22 +1997,21 @@ function nodequeue_remove_subqueue($sqid * The node ID */ function nodequeue_subqueue_add($queue, &$subqueue, $nid) { - // If adding this would make the queue too big, pop the front node - // (or nodes) out. - - if (!empty($queue->size)) { - // 0 means infinity so never do this if false - nodequeue_check_subqueue_size($queue, $subqueue, $queue->size - 1); - } - - db_query("INSERT INTO {nodequeue_nodes} (sqid, qid, nid, position, timestamp) VALUES (%d, %d, %d, %d, %d)", $subqueue->sqid, $queue->qid, $nid, $subqueue->count + 1, time()); - $subqueue->count++; - if (module_exists('apachesolr')) { - apachesolr_mark_node($nid); + if (!empty($nid)) { + db_query("INSERT INTO {nodequeue_nodes} (sqid, qid, nid, position, timestamp) VALUES (%d, %d, %d, %d, %d)", $subqueue->sqid, $queue->qid, $nid, $subqueue->count + 1, time()); + $subqueue->count++; + // If adding this would make the queue too big, pop the front node + // (or nodes) out. + if (!empty($queue->size)) { + // 0 means infinity so never do this if false + nodequeue_check_subqueue_size($queue, $subqueue, $queue->size - 1); + } + if (module_exists('apachesolr')) { + apachesolr_mark_node($nid); + } + //Invoke the hook to notify other modules of the node addition. + module_invoke_all('nodequeue_add', $subqueue->sqid, $nid); } - - // Invoke the hook to notify other modules of the node addition. - module_invoke_all('nodequeue_add', $subqueue->sqid, $nid); } /**