diff options
author | Dries Buytaert <dries@buytaert.net> | 2008-02-12 13:45:16 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2008-02-12 13:45:16 +0000 |
commit | 3c4d568984b883736a04725fec477f21a2dc51d7 (patch) | |
tree | 79aadc7dfa65d443df55fdc90d62962f878d6463 | |
parent | bbc65c30fa1764af2f7849c7267847014dc56cbc (diff) | |
download | brdo-3c4d568984b883736a04725fec477f21a2dc51d7.tar.gz brdo-3c4d568984b883736a04725fec477f21a2dc51d7.tar.bz2 |
- Patch #217803 by csevb10 and senpai: uninstall system does not correctly remove dynamic menu items when a module is deleted.
-rw-r--r-- | includes/install.inc | 9 |
1 files changed, 6 insertions, 3 deletions
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. |