summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorGábor Hojtsy <gabor@hojtsy.hu>2007-12-06 21:35:14 +0000
committerGábor Hojtsy <gabor@hojtsy.hu>2007-12-06 21:35:14 +0000
commitcd8afc2be1dc62bcad0d691f132aaf37a863237e (patch)
treee1144362accbd77da064b2f16e2a53fb30eced6c /modules
parentccf72e94176942e3033b11335957d66f4f9457e1 (diff)
downloadbrdo-cd8afc2be1dc62bcad0d691f132aaf37a863237e.tar.gz
brdo-cd8afc2be1dc62bcad0d691f132aaf37a863237e.tar.bz2
#196043 by chx: menu items saved in the update but broken on the new system (due to coming from disabled or old modules) were not possible to delete
Diffstat (limited to 'modules')
-rw-r--r--modules/menu/menu.admin.inc7
-rw-r--r--modules/system/system.install5
2 files changed, 4 insertions, 8 deletions
diff --git a/modules/menu/menu.admin.inc b/modules/menu/menu.admin.inc
index 91ecd3050..53972544d 100644
--- a/modules/menu/menu.admin.inc
+++ b/modules/menu/menu.admin.inc
@@ -95,7 +95,7 @@ function _menu_overview_tree_form($tree) {
$operations = array();
$operations['edit'] = l(t('edit'), 'admin/build/menu/item/'. $item['mlid'] .'/edit');
// Only items created by the menu module can be deleted.
- if ($item['module'] == 'menu') {
+ if ($item['module'] == 'menu' || $item['updated'] == 1) {
$operations['delete'] = l(t('delete'), 'admin/build/menu/item/'. $item['mlid'] .'/delete');
}
// Set the reset column.
@@ -534,8 +534,9 @@ function menu_edit_menu_submit($form, &$form_state) {
* Menu callback; Check access and present a confirm form for deleting a menu link.
*/
function menu_item_delete_page($item) {
- // Links defined via hook_menu may not be deleted.
- if ($item['module'] == 'system') {
+ // Links defined via hook_menu may not be deleted. Updated items are an
+ // exception, as they can be broken.
+ if ($item['module'] == 'system' && !$item['updated']) {
drupal_access_denied();
return;
}
diff --git a/modules/system/system.install b/modules/system/system.install
index 810d1a005..682f76a36 100644
--- a/modules/system/system.install
+++ b/modules/system/system.install
@@ -2327,11 +2327,6 @@ function system_update_6021() {
}
if ($_SESSION['system_update_6021'] >= $_SESSION['system_update_6021_max']) {
- $result = db_query('SELECT * FROM {menu_links} WHERE updated = 1 AND has_children = 0 AND customized = 0 ORDER BY depth DESC');
- // Remove all items that are not customized.
- while ($item = db_fetch_array($result)) {
- _menu_delete_item($item, TRUE);
- }
if (!empty($_SESSION['menu_bogus_menus'])) {
// Remove entries in bogus menus. This is secure because we deleted
// every non-alpanumeric character from the menu name.