? .DS_Store ? remove_nodes_upon_uninstallation_00.patch ? sites/.DS_Store ? sites/default Index: modules/node/node.module =================================================================== RCS file: /cvs/drupal/drupal/modules/node/node.module,v retrieving revision 1.1290 diff -u -p -r1.1290 node.module --- modules/node/node.module 17 Aug 2010 16:20:08 -0000 1.1290 +++ modules/node/node.module 22 Aug 2010 14:24:28 -0000 @@ -246,6 +246,26 @@ function node_field_display_node_alter(& } /** + * Implements hook_modules_uninstalled(). + */ +function node_modules_uninstalled(array $modules) { + // Clean up {block_node_type}. + db_delete('block_node_type') + ->condition('module', $modules, 'IN') + ->execute(); + + // Remove nodes of types provided by uninstalled modules. + $node_types = array(); + foreach ($modules as $module) { + $node_types += array_keys(module_invoke($module, 'node_info')); + } + foreach ($node_types as $node_type) { + $nids = array_keys(node_load_multiple(array(), array('type' => $node_type))); + node_delete_multiple($nids); + } +} + +/** * Entity uri callback. */ function node_uri($node) { @@ -2282,17 +2302,6 @@ function node_form_block_custom_block_de } /** - * Implements hook_modules_uninstalled(). - * - * Cleanup {block_node_type} table from modules' blocks. - */ -function node_modules_uninstalled($modules) { - db_delete('block_node_type') - ->condition('module', $modules, 'IN') - ->execute(); -} - -/** * Implements hook_block_list_alter(). * * Check the content type specific visibilty settings.