Index: nodequeue.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/nodequeue/nodequeue.module,v retrieving revision 1.89 diff -u -r1.89 nodequeue.module --- nodequeue.module 17 Aug 2009 22:50:03 -0000 1.89 +++ nodequeue.module 19 Aug 2009 21:56:22 -0000 @@ -2017,6 +2017,9 @@ 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); } /** @@ -2035,6 +2038,9 @@ if (module_exists('apachesolr')) { apachesolr_mark_node($nid); } + + // Invoke the hook to notify other modules of the node removal. + module_invoke_all('nodequeue_remove', $sqid, $nid); } } /** @@ -2058,9 +2064,17 @@ $end = $start; } + // Retrieve the nodes that are being removed. + $result = db_query("SELECT nid FROM {nodequeue_nodes} WHERE sqid = %d AND position >= %d AND position <= %d", $sqid, $start, $end); + $diff = $end - $start + 1; db_query("DELETE FROM {nodequeue_nodes} WHERE sqid = %d AND position >= %d AND position <= %d", $sqid, $start, $end); db_query("UPDATE {nodequeue_nodes} SET position = position - %d WHERE sqid = %d AND position > %d", $diff, $sqid, $end); + + // Invoke the hook to let other modules know that the nodes were removed. + while($node = db_fetch_object($result)) { + module_invoke_all('nodequeue_remove', $sqid, $node->nid); + } } /** Index: nodequeue.api.php =================================================================== RCS file: nodequeue.api.php diff -N nodequeue.api.php --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ nodequeue.api.php 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,38 @@ +