diff options
Diffstat (limited to 'database')
-rw-r--r-- | database/database.mysql | 7 | ||||
-rw-r--r-- | database/database.pgsql | 7 | ||||
-rw-r--r-- | database/updates.inc | 78 |
3 files changed, 89 insertions, 3 deletions
diff --git a/database/database.mysql b/database/database.mysql index d635f6dc1..a6a6defda 100644 --- a/database/database.mysql +++ b/database/database.mysql @@ -817,6 +817,7 @@ INSERT INTO system VALUES ('modules/block.module','block','module','',1,0,0); INSERT INTO system VALUES ('modules/comment.module','comment','module','',1,0,0); INSERT INTO system VALUES ('modules/filter.module','filter','module','',1,0,0); INSERT INTO system VALUES ('modules/help.module','help','module','',1,0,0); +INSERT INTO system VALUES ('modules/menu.module','menu','module','',1,0,0); INSERT INTO system VALUES ('modules/node.module','node','module','',1,0,0); INSERT INTO system VALUES ('modules/page.module','page','module','',1,0,0); INSERT INTO system VALUES ('modules/story.module','story','module','',1,0,0); @@ -842,7 +843,7 @@ REPLACE variable SET name='theme_default', value='s:10:"bluemarine";'; REPLACE blocks SET module = 'user', delta = '0', theme = 'bluemarine', status = '1'; REPLACE blocks SET module = 'user', delta = '1', theme = 'bluemarine', status = '1'; -INSERT INTO sequences (name, id) VALUES ('menu_mid', 1); +INSERT INTO sequences (name, id) VALUES ('menu_mid', 2); INSERT INTO node_access VALUES (0, 0, 'all', 1, 0, 0); @@ -860,3 +861,7 @@ INSERT INTO locales_meta (locale, name, enabled, isdefault) VALUES ('en', 'Engli INSERT INTO url_alias (src, dst) VALUES ('node/feed', 'rss.xml'); INSERT INTO variable (name, value) VALUES ('node_options_forum', 'a:1:{i:0;s:6:"status";}'); + +INSERT INTO menu VALUES (2, 0, '', 'Primary links', '', 0, 115); +INSERT INTO variable VALUES ('menu_primary_menu', 'i:2;'); +INSERT INTO variable VALUES ('menu_secondary_menu', 'i:2;'); diff --git a/database/database.pgsql b/database/database.pgsql index ba2fd0a8f..5cab7e2a6 100644 --- a/database/database.pgsql +++ b/database/database.pgsql @@ -811,6 +811,7 @@ INSERT INTO system VALUES ('modules/block.module','block','module','',1,0,0); INSERT INTO system VALUES ('modules/comment.module','comment','module','',1,0,0); INSERT INTO system VALUES ('modules/filter.module','filter','module','',1,0,0); INSERT INTO system VALUES ('modules/help.module','help','module','',1,0,0); +INSERT INTO system VALUES ('modules/menu.module','menu','module','',1,0,0); INSERT INTO system VALUES ('modules/node.module','node','module','',1,0,0); INSERT INTO system VALUES ('modules/page.module','page','module','',1,0,0); INSERT INTO system VALUES ('modules/story.module','story','module','',1,0,0); @@ -852,10 +853,14 @@ INSERT INTO url_alias (src, dst) VALUES ('node/feed', 'rss.xml'); INSERT INTO variable (name, value) VALUES ('node_options_forum', 'a:1:{i:0;s:6:"status";}'); +INSERT INTO menu VALUES (2, 0, '', 'Primary links', '', 0, 115); +INSERT INTO variable VALUES ('menu_primary_menu', 'i:2;'); +INSERT INTO variable VALUES ('menu_secondary_menu', 'i:2;'); + --- --- Alter some sequences --- -ALTER SEQUENCE menu_mid_seq RESTART 2; +ALTER SEQUENCE menu_mid_seq RESTART 3; --- --- Functions 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); |