From 3c4d568984b883736a04725fec477f21a2dc51d7 Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Tue, 12 Feb 2008 13:45:16 +0000 Subject: - Patch #217803 by csevb10 and senpai: uninstall system does not correctly remove dynamic menu items when a module is deleted. --- includes/install.inc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'includes') diff --git a/includes/install.inc b/includes/install.inc index b30d02a28..6d6d4349e 100644 --- a/includes/install.inc +++ b/includes/install.inc @@ -373,12 +373,15 @@ function drupal_install_system() { * The module to uninstall. */ function drupal_uninstall_module($module) { + // First, retrieve all the module's menu paths from db. + drupal_load('module', $module); + $paths = module_invoke($module, 'menu'); + + // Uninstall the module(s). module_load_install($module); module_invoke($module, 'uninstall'); - // Remove menu links for paths declared by this module. - drupal_load('module', $module); - $paths = module_invoke($module, 'menu'); + // Now remove the menu links for all paths declared by this module. if (!empty($paths)) { $paths = array_keys($paths); // Clean out the names of load functions. -- cgit v1.2.3