From dd5725690302d1cad7efd59140a599f9bd6ebde7 Mon Sep 17 00:00:00 2001 From: Angie Byron Date: Mon, 23 Aug 2010 22:15:34 +0000 Subject: #890790 by moshe weitzman: Fixed deleting nodes does not delete their comments. --- modules/node/node.module | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'modules/node/node.module') diff --git a/modules/node/node.module b/modules/node/node.module index 1bc4c835f..a66e55f68 100644 --- a/modules/node/node.module +++ b/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(); -- cgit v1.2.3