diff --git a/database/updates.inc b/database/updates.inc index 191bbc18f2ba3bc2f92d780d3eb0143a17bbae58..622413cbab23799dd646d8a65e430bbf209ab220 100644 --- a/database/updates.inc +++ b/database/updates.inc @@ -941,32 +941,40 @@ function system_update_151() { $ret[] = update_sql("INSERT INTO {menu} (mid, pid, path, title, description, weight, type) " . "VALUES ({$menus[$loop]['pid']}, 0, '', '{$menus[$loop]['menu_name']}', '', 0, 115)"); - // insert all entries from theme links into new menus - $num_inserted = 0; + // Gather links from various settings into a single array. + $phptemplate_links = variable_get("phptemplate_". $menus[$loop]['links_var'], array()); + $phptemplate_links_more = variable_get("phptemplate_". $menus[$loop]['links_var'] ."_more", array()); if (isset($ts) && is_array($ts) && is_array($ts[$menus[$loop]['links_var']])) { - $links = $ts[$menus[$loop]['links_var']]; - for ($i = 0; $i < count($links['text']); $i++) { - if ($links['text'][$i] != "" && $links['link'][$i] != "") { - $num_inserted ++; - $node_unalias = db_fetch_array(db_query("SELECT src FROM {url_alias} WHERE dst = '%s'", $links['link'][$i])); - if (isset($node_unalias) && is_array($node_unalias)) { - $link_path = $node_unalias['src']; + $theme_links = $ts[$menus[$loop]['links_var']]; } else { - $link_path = $links['link'][$i]; + $theme_links = array(); } + $links = array_merge($phptemplate_links, $phptemplate_links_more, $theme_links); - $mid = db_next_id('{menu}_mid'); - $ret[] = update_sql("INSERT INTO {menu} (mid, pid, path, title, description, weight, type) " . - "VALUES ($mid, {$menus[$loop]['pid']}, '" . db_escape_string($link_path) . - "', '" . db_escape_string($links['text'][$i]) . - "', '" . db_escape_string($links['description'][$i]) . "', 0, 118)"); + // insert all entries from theme links into new menus + $num_inserted = 0; + for ($i = 0; $i < count($links['text']); $i++) { + if ($links['text'][$i] != "" && $links['link'][$i] != "") { + $num_inserted ++; + $node_unalias = db_fetch_array(db_query("SELECT src FROM {url_alias} WHERE dst = '%s'", $links['link'][$i])); + if (isset($node_unalias) && is_array($node_unalias)) { + $link_path = $node_unalias['src']; } + else { + $link_path = $links['link'][$i]; + } + + $mid = db_next_id('{menu}_mid'); + $ret[] = update_sql("INSERT INTO {menu} (mid, pid, path, title, description, weight, type) " . + "VALUES ($mid, {$menus[$loop]['pid']}, '" . db_escape_string($link_path) . + "', '" . db_escape_string($links['text'][$i]) . + "', '" . db_escape_string($links['description'][$i]) . "', 0, 118)"); } - // delete Secondary links if not populated. - if ($loop == 1 && $num_inserted == 0) { - db_query("DELETE FROM {menu} WHERE mid={$menus[$loop]['pid']}"); - } + } + // delete Secondary links if not populated. + if ($loop == 1 && $num_inserted == 0) { + db_query("DELETE FROM {menu} WHERE mid={$menus[$loop]['pid']}"); } // set menu_primary_menu variable appropriately @@ -976,12 +984,14 @@ function system_update_151() { else { variable_set($menus[$loop]['menu_var'], $menus[$loop]['pid']); } + variable_del('phptemplate_' .$menus[$loop]['links_var']); + variable_del('phptemplate_'. $menus[$loop]['links_var'] .'_more'); variable_del($menus[$loop]['toggle_var']); - unset($ts[$menus[$loop]['toggle_var']]); - variable_del($menus[$loop]['links_var']); - unset($ts[$menus[$loop]['links_var']]); variable_del($menus[$loop]['more_var']); - unset($ts[$menus[$loop]['more_var']]); + // If user has old xtemplate links in a string, leave them in the var. + if (isset($ts) && is_array($ts) && is_array($ts[$menus[$loop]['links_var']])) { + variable_del($menus[$loop]['links_var']); + } } if (isset($ts) && is_array($ts)) {