Issue #898634 by catch, alex_b, chx: Fixed install_drupal(): call to menu-touching functions results in SQL syntax error.

merge-requests/26/head
webchick 2011-07-18 01:04:29 -07:00
parent 2a91ace4c1
commit 116f8b6428
2 changed files with 13 additions and 5 deletions

View File

@ -431,6 +431,11 @@ function menu_get_item($path = NULL, $router_item = NULL) {
$router_items[$path] = $router_item;
}
if (!isset($router_items[$path])) {
// Rebuild if we know it's needed, or if the menu masks are missing which
// occurs rarely, likely due to a race condition of multiple rebuilds.
if (variable_get('menu_rebuild_needed', FALSE) || !variable_get('menu_masks', array())) {
menu_rebuild();
}
$original_map = arg(NULL, $path);
// Since there is no limit to the length of $path, use a hash to keep it
@ -490,11 +495,6 @@ function menu_execute_active_handler($path = NULL, $deliver = TRUE) {
// Only continue if the site status is not set.
if ($page_callback_result == MENU_SITE_ONLINE) {
// Rebuild if we know it's needed, or if the menu masks are missing which
// occurs rarely, likely due to a race condition of multiple rebuilds.
if (variable_get('menu_rebuild_needed', FALSE) || !variable_get('menu_masks', array())) {
menu_rebuild();
}
if ($router_item = menu_get_item($path)) {
if ($router_item['access']) {
if ($router_item['include_file']) {

View File

@ -394,6 +394,14 @@ class MenuRouterTestCase extends DrupalWebTestCase {
$this->assertEqual($link['plid'], $plid, t('%path plid @link_plid is equal to @plid.', array('%path' => $link['router_path'], '@link_plid' => $link['plid'], '@plid' => $plid)));
}
/**
* Test menu_get_item() with empty ancestors.
*/
function testMenuGetItemNoAncestors() {
variable_set('menu_masks', array());
$this->drupalGet('');
}
/**
* Test menu_set_item().
*/