summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/menu.inc3
-rw-r--r--modules/menu/menu.test5
2 files changed, 6 insertions, 2 deletions
diff --git a/includes/menu.inc b/includes/menu.inc
index 5362aafd9..83d36aa7b 100644
--- a/includes/menu.inc
+++ b/includes/menu.inc
@@ -2194,7 +2194,8 @@ function menu_link_load($mlid) {
$query = db_select('menu_links', 'ml');
$query->leftJoin('menu_router', 'm', 'm.path = ml.router_path');
$query->fields('ml');
- $query->fields('m');
+ // Weight should be taken from {menu_links}, not {menu_router}.
+ $query->fields('m', array_diff(drupal_schema_fields_sql('menu_router'), array('weight')));
$query->condition('ml.mlid', $mlid);
if ($item = $query->execute()->fetchAssoc()) {
_menu_link_translate($item);
diff --git a/modules/menu/menu.test b/modules/menu/menu.test
index f00238e9b..ef7edf43a 100644
--- a/modules/menu/menu.test
+++ b/modules/menu/menu.test
@@ -606,12 +606,16 @@ class MenuNodeTestCase extends DrupalWebTestCase {
$edit = array(
'menu[enabled]' => 1,
'menu[link_title]' => $node_title,
+ 'menu[weight]' => 17,
);
$this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save'));
// Assert that the link exists.
$this->drupalGet('');
$this->assertLink($node_title);
+ $this->drupalGet('node/' . $node->nid . '/edit');
+ $this->assertOptionSelected('edit-menu-weight', 17, t('Menu weight correct in edit form'));
+
// Edit the node and remove the menu link.
$edit = array(
'menu[enabled]' => FALSE,
@@ -622,4 +626,3 @@ class MenuNodeTestCase extends DrupalWebTestCase {
$this->assertNoLink($node_title);
}
}
-