summaryrefslogtreecommitdiff
path: root/database/updates.inc
diff options
context:
space:
mode:
Diffstat (limited to 'database/updates.inc')
-rw-r--r--database/updates.inc78
1 files changed, 77 insertions, 1 deletions
diff --git a/database/updates.inc b/database/updates.inc
index 4f7f32be7..5ae0457f7 100644
--- a/database/updates.inc
+++ b/database/updates.inc
@@ -67,7 +67,8 @@ $sql_updates = array(
"2005-09-07" => "update_147",
"2005-09-18" => "update_148",
"2005-09-27" => "update_149",
- "2005-10-15" => "update_150"
+ "2005-10-15" => "update_150",
+ "2005-10-23" => "update_151",
);
function update_110() {
@@ -919,6 +920,81 @@ function update_150() {
return $ret;
}
+function update_151() {
+ $ret = array();
+
+ $ts = variable_get('theme_settings', null);
+
+ // set up data array so we can loop over both sets of links
+ $menus = array(0 => array('links_var' => 'primary_links',
+ 'toggle_var' => 'toggle_primary_links',
+ 'more_var' => 'primary_links_more',
+ 'menu_name' => t('Primary links'),
+ 'menu_var' => 'menu_primary_menu',
+ 'pid' => 0),
+ 1 => array('links_var' => 'secondary_links',
+ 'toggle_var' => 'toggle_secondary_links',
+ 'more_var' => 'secondary_links_more',
+ 'menu_name' => t('Secondary links'),
+ 'menu_var' => 'menu_secondary_menu',
+ 'pid' => 0));
+
+ for ($loop = 0; $loop <= 1 ; $loop ++) {
+ // create new Primary and Secondary links menus
+ $menus[$loop]['pid'] = db_next_id('{menu}_mid');
+ $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;
+ if (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 (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']}, '$link_path', '{$links['text'][$i]}', '{$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']}");
+ }
+ }
+
+ // set menu_primary_menu variable appropriately
+ if (!$ts[$menus[$loop]['toggle_var']] || $num_inserted == 0) {
+ variable_set($menus[$loop]['menu_var'], 0);
+ }
+ else {
+ variable_set($menus[$loop]['menu_var'], $menus[$loop]['pid']);
+ }
+ 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 (is_array($ts)) {
+ variable_set('theme_settings', $ts);
+ }
+
+ $ret[] = update_sql("UPDATE {system} SET status = 1 WHERE name = 'menu'");
+
+ return $ret;
+}
+
function update_sql($sql) {
$edit = $_POST["edit"];
$result = db_query($sql);