modules/node/node.module | 21 +++++++++++---------- 1 files changed, 11 insertions(+), 10 deletions(-) diff --git modules/node/node.module modules/node/node.module index 4c82202..5c8ff7a 100644 --- modules/node/node.module +++ modules/node/node.module @@ -1138,16 +1138,6 @@ function node_delete_multiple($nids) { if (!empty($nids)) { $nodes = node_load_multiple($nids, array()); - db_delete('node') - ->condition('nid', $nids, 'IN') - ->execute(); - db_delete('node_revision') - ->condition('nid', $nids, 'IN') - ->execute(); - db_delete('history') - ->condition('nid', $nids, 'IN') - ->execute(); - foreach ($nodes as $nid => $node) { // Call the node-specific callback (if any): node_invoke($node, 'delete'); @@ -1163,6 +1153,17 @@ function node_delete_multiple($nids) { } } + // Delete after calling hooks so that they can query node tables as needed. + db_delete('node') + ->condition('nid', $nids, 'IN') + ->execute(); + db_delete('node_revision') + ->condition('nid', $nids, 'IN') + ->execute(); + db_delete('history') + ->condition('nid', $nids, 'IN') + ->execute(); + // Clear the page and block and node_load_multiple caches. cache_clear_all(); entity_get_controller('node')->resetCache();