summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--database/updates.inc774
-rw-r--r--modules/poll.module8
-rw-r--r--modules/poll/poll.module8
-rw-r--r--themes/xtemplate/pushbutton/xtemplate.css50
-rw-r--r--update.php696
5 files changed, 818 insertions, 718 deletions
diff --git a/database/updates.inc b/database/updates.inc
new file mode 100644
index 000000000..fe9389eec
--- /dev/null
+++ b/database/updates.inc
@@ -0,0 +1,774 @@
+<?php
+/* $Id$ */
+
+// Define the various updates in an array("date : comment" => "function");
+$sql_updates = array(
+ "2002-06-22: first update since Drupal 4.0.0 release" => "update_32",
+ "2002-07-07" => "update_33",
+ "2002-07-31" => "update_34",
+ "2002-08-10" => "update_35",
+ "2002-08-16" => "update_36",
+ "2002-08-19" => "update_37",
+ "2002-08-26" => "update_38",
+ "2002-09-15" => "update_39",
+ "2002-09-17" => "update_40",
+ "2002-10-13" => "update_41",
+ "2002-10-17" => "update_42",
+ "2002-10-26" => "update_43",
+ "2002-11-08" => "update_44",
+ "2002-11-20" => "update_45",
+ "2002-12-10: first update since Drupal 4.1.0 release" => "update_46",
+ "2002-12-29" => "update_47",
+ "2003-01-03" => "update_48",
+ "2003-01-05" => "update_49",
+ "2003-01-15" => "update_50",
+ "2003-04-19" => "update_51",
+ "2003-04-20" => "update_52",
+ "2003-05-18" => "update_53",
+ "2003-05-24" => "update_54",
+ "2003-05-31" => "update_55",
+ "2003-06-04" => "update_56",
+ "2003-06-08" => "update_57",
+ "2003-06-08: first update since Drupal 4.2.0 release" => "update_58",
+ "2003-08-05" => "update_59",
+ "2003-08-15" => "update_60",
+ "2003-08-20" => "update_61",
+ "2003-08-27" => "update_62",
+ "2003-09-09" => "update_63",
+ "2003-09-10" => "update_64",
+ "2003-09-29" => "update_65",
+ "2003-09-30" => "update_66",
+ "2003-10-11" => "update_67",
+ "2003-10-20" => "update_68",
+ "2003-10-22" => "update_69",
+ "2003-10-27" => "update_70",
+ "2003-11-17: first update since Drupal 4.3.0 release" => "update_71",
+ "2003-11-27" => "update_72",
+ "2003-12-03" => "update_73",
+ "2003-12-06" => "update_74",
+ "2004-01-06" => "update_75",
+ "2004-01-11" => "update_76",
+ "2004-01-13" => "update_77",
+ "2004-02-03" => "update_78",
+ "2004-02-21" => "update_79"
+);
+
+function update_32() {
+ $ret = array();
+ $ret[] = update_sql("ALTER TABLE users ADD index (sid(4))");
+ $ret[] = update_sql("ALTER TABLE users ADD index (timestamp)");
+ $ret[] = update_sql("ALTER TABLE users ADD UNIQUE KEY name (name)");
+ return $ret;
+}
+
+function update_33() {
+ $ret = array();
+ $result = db_query("SELECT * FROM variable WHERE value NOT LIKE 's:%;'");
+ // NOTE: the "WHERE"-part of the query above avoids variables to get serialized twice.
+ while ($variable = db_fetch_object($result)) {
+ variable_set($variable->name, $variable->value);
+ }
+ return $ret;
+}
+
+function update_34() {
+ $ret = array();
+ $ret[] = update_sql("ALTER TABLE feed MODIFY refresh int(10) NOT NULL default '0'");
+ $ret[] = update_sql("ALTER TABLE feed MODIFY timestamp int (10) NOT NULL default '0'");
+ $ret[] = update_sql("ALTER TABLE users CHANGE session session TEXT");
+ return $ret;
+}
+
+function update_35() {
+ $ret = array();
+ $ret[] = update_sql("ALTER TABLE poll_choices ADD INDEX (nid)");
+ return $ret;
+}
+
+function update_36() {
+ $ret = array();
+ $ret[] = update_sql("ALTER TABLE rating CHANGE old previous int(6) NOT NULL default '0'");
+ $ret[] = update_sql("ALTER TABLE rating CHANGE new current int(6) NOT NULL default '0'");
+ return $ret;
+}
+
+function update_37() {
+ $ret = array();
+
+ $ret[] = update_sql("DROP TABLE IF EXISTS sequences");
+
+ $ret[] = update_sql("CREATE TABLE sequences (
+ name VARCHAR(255) NOT NULL PRIMARY KEY,
+ id INT UNSIGNED NOT NULL
+ ) TYPE=MyISAM");
+
+ if ($max = db_result(db_query("SELECT MAX(nid) FROM node"))) {
+ $ret[] = update_sql("REPLACE INTO sequences VALUES ('node', $max)");
+ }
+
+ if ($max = db_result(db_query("SELECT MAX(cid) FROM comments"))) {
+ $ret[] = update_sql("REPLACE INTO sequences VALUES ('comments', $max)");
+ }
+ // NOTE: move the comments bit down as soon as we switched to use the new comment module!
+
+ if ($max = db_result(db_query("SELECT MAX(tid) FROM term_data"))) {
+ $ret[] = update_sql("REPLACE INTO sequences VALUES ('term_data', $max)");
+ }
+ return $ret;
+}
+
+function update_38() {
+ $ret = array();
+ $ret[] = update_sql("ALTER TABLE watchdog CHANGE message message text NOT NULL default ''");
+ return $ret;
+}
+
+function update_39() {
+ $ret = array();
+ $ret[] = update_sql("DROP TABLE moderate");
+
+ $ret[] = update_sql("ALTER TABLE comments ADD score MEDIUMINT NOT NULL");
+ $ret[] = update_sql("ALTER TABLE comments ADD status TINYINT UNSIGNED NOT NULL");
+ $ret[] = update_sql("ALTER TABLE comments ADD users MEDIUMTEXT");
+
+ $ret[] = update_sql("CREATE TABLE moderation_votes (
+ mid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ vote VARCHAR(255),
+ weight TINYINT NOT NULL
+ )");
+
+ $ret[] = update_sql("CREATE TABLE moderation_roles (
+ rid INT UNSIGNED NOT NULL,
+ mid INT UNSIGNED NOT NULL,
+ value TINYINT NOT NULL
+ )");
+
+ $ret[] = update_sql("ALTER TABLE moderation_roles ADD INDEX (rid)");
+ $ret[] = update_sql("ALTER TABLE moderation_roles ADD INDEX (mid)");
+
+ $ret[] = update_sql("CREATE TABLE moderation_filters (
+ fid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ filter VARCHAR(255) NOT NULL,
+ minimum SMALLINT NOT NULL
+ )");
+
+ $ret[] = update_sql("DELETE FROM moderation_votes");
+ $ret[] = update_sql("INSERT INTO moderation_votes VALUES (1, '+1', 0)");
+ $ret[] = update_sql("INSERT INTO moderation_votes VALUES (2, '-1', 1)");
+
+ $ret[] = update_sql("DELETE FROM moderation_roles");
+ $ret[] = update_sql("INSERT INTO moderation_roles VALUES (2, 1, 1)");
+ $ret[] = update_sql("INSERT INTO moderation_roles VALUES (2, 2, -1)");
+
+ $ret[] = update_sql("CREATE TABLE forum (
+ nid int unsigned not null primary key,
+ icon varchar(255) not null,
+ shadow int unsigned not null
+ )");
+ return $ret;
+}
+
+function update_40() {
+ $ret = array();
+ if ($max = db_result(db_query("SELECT MAX(cid) FROM comments"))) {
+ $ret[] = update_sql("REPLACE INTO sequences VALUES ('comments', $max)");
+ }
+ return $ret;
+}
+
+function update_41() {
+ $ret = array();
+ $ret[] = update_sql("CREATE TABLE statistics (
+ nid int(11) NOT NULL,
+ totalcount bigint UNSIGNED DEFAULT '0' NOT NULL,
+ daycount mediumint UNSIGNED DEFAULT '0' NOT NULL,
+ timestamp int(11) UNSIGNED DEFAULT '0' NOT NULL,
+ PRIMARY KEY (nid),
+ INDEX (totalcount),
+ INDEX (daycount),
+ INDEX (timestamp)
+ )");
+
+ $ret[] = update_sql("CREATE TABLE accesslog (
+ nid int(11) UNSIGNED DEFAULT '0',
+ url varchar(255),
+ hostname varchar(128),
+ uid int(10) UNSIGNED DEFAULT '0',
+ timestamp int(11) UNSIGNED NOT NULL
+ )");
+ return $ret;
+}
+
+function update_42() {
+ $ret = array();
+ $ret[] = update_sql("DROP TABLE modules");
+ $ret[] = update_sql("DROP TABLE layout");
+ $ret[] = update_sql("DROP TABLE referrer");
+ return $ret;
+}
+
+function update_43() {
+ $ret = array();
+ $ret[] = update_sql("ALTER TABLE blocks DROP remove");
+ $ret[] = update_sql("ALTER TABLE blocks DROP name");
+ $ret[] = update_sql("UPDATE boxes SET type = 0 WHERE type = 1");
+ $ret[] = update_sql("UPDATE boxes SET type = 1 WHERE type = 2");
+ return $ret;
+}
+
+function update_44() {
+ $ret = array();
+ $ret[] = update_sql("UPDATE system SET filename = CONCAT('modules/', filename) WHERE type = 'module'");
+ return $ret;
+}
+
+function update_45() {
+ $ret = array();
+ $ret[] = update_sql("ALTER TABLE page ADD description varchar(128) NOT NULL default ''");
+ return $ret;
+}
+
+function update_46() {
+ $ret = array();
+ if ($GLOBALS["db_type"] == "pgsql") {
+ $ret[] = update_sql("ALTER TABLE cache ADD created integer");
+ }
+ else {
+ $ret[] = update_sql("ALTER TABLE cache ADD created int(11) NOT NULL default '0'");
+ }
+ return $ret;
+}
+
+function update_47() {
+ $ret = array();
+ if ($max = db_result(db_query("SELECT MAX(vid) FROM vocabulary"))) {
+ $ret[] = update_sql("REPLACE INTO sequences VALUES ('vocabulary', $max)");
+ }
+ return $ret;
+}
+
+function update_48() {
+ $ret = array();
+ $ret[] = update_sql("ALTER TABLE watchdog ADD link varchar(255) DEFAULT '' NULL");
+ return $ret;
+}
+
+function update_49() {
+ $ret = array();
+ /*
+ ** Make sure the admin module is added to the system table or the
+ ** admin menus won't show up.
+ */
+
+ $ret[] = update_sql("DELETE FROM system WHERE name = 'admin';");
+ $ret[] = update_sql("INSERT INTO system VALUES ('modules/admin.module','admin','module','',1)");
+ return $ret;
+}
+
+function update_50() {
+ $ret = array();
+ $ret[] = update_sql("ALTER TABLE forum ADD tid INT UNSIGNED NOT NULL");
+ $result = db_queryd("SELECT n.nid, t.tid FROM node n, term_node t WHERE n.nid = t.nid AND type = 'forum'");
+ while ($node = db_fetch_object($result)) {
+ db_queryd("UPDATE forum SET tid = %d WHERE nid = %d", $node->tid, $node->nid);
+ }
+ $ret[] = update_sql("ALTER TABLE forum ADD INDEX (tid)");
+ return $ret;
+}
+
+function update_51() {
+ $ret = array();
+ $ret[] = update_sql("ALTER TABLE blocks CHANGE delta delta varchar(32) NOT NULL default '0'");
+ return $ret;
+}
+
+function update_52() {
+ $ret = array();
+ $ret[] = update_sql("UPDATE sequences SET name = 'comments_cid' WHERE name = 'comments';");
+ $ret[] = update_sql("UPDATE sequences SET name = 'node_nid' WHERE name = 'node';");
+
+ $ret[] = update_sql("DELETE FROM sequences WHERE name = 'import'");
+ $ret[] = update_sql("DELETE FROM sequences WHERE name = 'bundle_bid'"); // in case we would run this entry twice
+ $ret[] = update_sql("DELETE FROM sequences WHERE name = 'feed_fid'"); // in case we would run this entry twice
+
+ $bundles = db_result(db_query("SELECT MAX(bid) FROM bundle;"));
+ $ret[] = update_sql("INSERT INTO sequences (name, id) VALUES ('bundle_bid', '$bundles')");
+
+ $feeds = db_result(db_query("SELECT MAX(fid) FROM feed;"));
+ $ret[] = update_sql("INSERT INTO sequences (name, id) VALUES ('feed_fid', '$feeds')");
+
+ $ret[] = update_sql("UPDATE sequences SET name = 'vocabulary_vid' WHERE name = 'vocabulary';");
+
+ $ret[] = update_sql("UPDATE sequences SET name = 'term_data_tid' WHERE name = 'term_data'");
+ return $ret;
+}
+
+function update_53() {
+ $ret = array();
+ $ret[] = update_sql("CREATE INDEX book_parent ON book(parent);");
+ return $ret;
+}
+
+function update_54() {
+ $ret = array();
+ $ret[] = update_sql("ALTER TABLE locales CHANGE string string BLOB DEFAULT '' NOT NULL");
+ return $ret;
+}
+
+function update_55() {
+ $ret = array();
+ $ret[] = update_sql("ALTER TABLE site ADD checked INT(11) NOT NULL;");
+ $ret[] = update_sql("ALTER TABLE site CHANGE timestamp changed INT(11) NOT NULL;");
+ return $ret;
+}
+
+function update_56() {
+ $ret = array();
+ $ret[] = update_sql("ALTER TABLE vocabulary CHANGE types nodes TEXT DEFAULT '' NOT NULL");
+ return $ret;
+}
+
+function update_57() {
+ $ret = array();
+ $ret[] = update_sql("DELETE FROM variable WHERE name = 'site_charset'");
+ return $ret;
+}
+
+function update_58() {
+ $ret = array();
+ if ($GLOBALS["db_type"] == "pgsql") {
+ $ret[] = update_sql("ALTER TABLE {node} ADD path varchar(250) NULL");
+ $ret[] = update_sql("ALTER TABLE {node} ALTER COLUMN path SET DEFAULT ''");
+ }
+ else {
+ $ret[] = update_sql("ALTER TABLE {node} ADD path varchar(250) NULL default ''");
+ }
+ return $ret;
+}
+
+function update_59() {
+ $ret = array();
+ if ($GLOBALS["db_type"] == "pgsql") {
+ $ret[] = update_sql("ALTER TABLE {comments} ADD thread VARCHAR(255)");
+ $ret[] = update_sql("ALTER TABLE {comments} ALTER COLUMN thread SET NOT NULL");
+ }
+ else {
+ $ret[] = update_sql("ALTER TABLE {comments} ADD thread VARCHAR(255) NOT NULL");
+ }
+
+ $result = db_query("SELECT DISTINCT(nid) FROM {comments} WHERE thread = ''");
+
+ while ($node = db_fetch_object($result)) {
+ $result2 = db_query("SELECT cid, pid FROM {comments} where nid = '%d' ORDER BY timestamp", $node->nid);
+ $comments = array();
+ while ($comment = db_fetch_object($result2)) {
+ $comments[$comment->cid] = $comment;
+ }
+
+ $structure = array();
+ $structure = _update_thread_structure($comments, 0, -1, $structure);
+
+ foreach ($structure as $cid => $thread) {
+ $new_parts = array();
+ foreach(explode(".", $thread) as $part) {
+ if ($part > 9) {
+ $start = substr($part, 0, strlen($part) - 1);
+ $end = substr($part, -1, 1);
+
+ $new_parts[] = str_repeat("9", $start).$end;
+ }
+ else {
+ $new_parts[] = $part;
+ }
+ }
+ $thread = implode(".", $new_parts);
+
+ db_query("UPDATE {comments} SET thread = '%s' WHERE cid = '%d'", $thread."/", $comments[$cid]->cid);
+ }
+ }
+ return $ret;
+}
+
+function _update_thread_structure($comments, $pid, $depth, $structure) {
+ $ret = array();
+ $depth++;
+
+ foreach ($comments as $key => $comment) {
+ if ($comment->pid == $pid) {
+ if ($structure[$comment->pid]) {
+ $structure[$comment->cid] = $structure[$comment->pid]."."._update_next_thread($structure, $structure[$comment->pid]);
+ }
+ else {
+ $structure[$comment->cid] = _update_next_thread($structure, "");
+ }
+
+ $structure = _update_thread_structure($comments, $comment->cid, $depth, $structure);
+ }
+ }
+
+ return $structure;
+ return $ret;
+}
+
+function update_60() {
+ $ret = array();
+ $ret[] = update_sql("ALTER TABLE {forum} DROP icon");
+ return $ret;
+}
+
+function update_61() {
+ $ret = array();
+ if ($GLOBALS["db_type"] == "pgsql") {
+ $ret[] = update_sql("CREATE TABLE {sessions} (
+ uid integer NOT NULL,
+ sid varchar(32) NOT NULL default '',
+ hostname varchar(128) NOT NULL default '',
+ timestamp integer NOT NULL default '0',
+ session text,
+ PRIMARY KEY (sid)
+ );");
+
+ $ret[] = update_sql("ALTER TABLE {users} DROP session;");
+ $ret[] = update_sql("ALTER TABLE {users} DROP hostname;");
+ $ret[] = update_sql("ALTER TABLE {users} DROP sid;");
+
+ }
+ else {
+ $ret[] = update_sql("CREATE TABLE IF NOT EXISTS {sessions} (
+ uid int(10) unsigned NOT NULL,
+ sid varchar(32) NOT NULL default '',
+ hostname varchar(128) NOT NULL default '',
+ timestamp int(11) NOT NULL default '0',
+ session text,
+ KEY uid (uid),
+ KEY sid (sid(4)),
+ KEY timestamp (timestamp)
+ )");
+
+ $ret[] = update_sql("ALTER TABLE {users} DROP session;");
+ $ret[] = update_sql("ALTER TABLE {users} DROP hostname;");
+ $ret[] = update_sql("ALTER TABLE {users} DROP sid;");
+ }
+ return $ret;
+}
+
+function update_62() {
+ $ret = array();
+ if ($GLOBALS["db_type"] == "pgsql") {
+ $ret[] = update_sql("CREATE INDEX accesslog_timestamp ON {accesslog} (timestamp)");
+
+ $ret[] = update_sql("DROP INDEX node_type_idx");
+ $ret[] = update_sql("DROP INDEX node_title_idx");
+ $ret[] = update_sql("DROP INDEX node_promote_idx");
+
+ $ret[] = update_sql("CREATE INDEX node_type ON {node} (type)");
+ $ret[] = update_sql("CREATE INDEX node_title_type ON {node} (title,type)");
+ $ret[] = update_sql("CREATE INDEX node_moderate ON {node} (moderate)");
+ $ret[] = update_sql("CREATE INDEX node_path ON {node} (path)");
+ $ret[] = update_sql("CREATE INDEX node_promote_status ON {node} (promote, status)");
+
+ }
+ else {
+ $ret[] = update_sql("ALTER TABLE {accesslog} ADD INDEX accesslog_timestamp (timestamp)");
+
+ $ret[] = update_sql("ALTER TABLE {node} DROP INDEX type");
+ $ret[] = update_sql("ALTER TABLE {node} DROP INDEX title");
+ $ret[] = update_sql("ALTER TABLE {node} DROP INDEX promote");
+
+ $ret[] = update_sql("ALTER TABLE {node} ADD INDEX node_type (type(4))");
+ $ret[] = update_sql("ALTER TABLE {node} ADD INDEX node_title_type (title,type(4))");
+ $ret[] = update_sql("ALTER TABLE {node} ADD INDEX node_moderate (moderate)");
+ $ret[] = update_sql("ALTER TABLE {node} ADD INDEX node_path (path(5))");
+ $ret[] = update_sql("ALTER TABLE {node} ADD INDEX node_promote_status (promote, status)");
+ }
+ return $ret;
+}
+
+function _update_next_thread($structure, $parent) {
+ $ret = array();
+ do {
+ $val++;
+ if ($parent) {
+ $thread = "$parent.$val";
+ }
+ else {
+ $thread = $val;
+ }
+
+ } while (array_search($thread, $structure));
+
+ return $val;
+ return $ret;
+}
+
+function update_63() {
+ $ret = array();
+ if ($GLOBALS["db_type"] == "pgsql") {
+ $ret[] = update_sql("INSERT INTO {users} (uid, name, mail, timestamp) VALUES ('0', '', '', '". time() ."')");
+ }
+ else {
+ $ret[] = update_sql("ALTER TABLE {users} CHANGE uid uid int(10) unsigned NOT NULL default '0'");
+ $ret[] = update_sql("INSERT INTO {users} (uid, name, mail, timestamp) VALUES ('0', '', '', '". time() ."')");
+ $users = db_result(db_query("SELECT MAX(uid) FROM {users};"));
+ $ret[] = update_sql("INSERT INTO {sequences} (name, id) VALUES ('users_uid', '$users')");
+ }
+ return $ret;
+}
+
+function update_64() {
+ $ret = array();
+ $ret[] = update_sql("UPDATE {users} SET rid = 1 WHERE uid = 0");
+ return $ret;
+}
+
+function update_65() {
+ $ret = array();
+ // PostgreSQL-only update.
+ if ($GLOBALS["db_type"] == "pgsql") {
+ $ret[] = update_sql("CREATE FUNCTION \"rand\"() RETURNS float AS '
+ BEGIN
+ RETURN random();
+ END;' LANGUAGE 'plpgsql'");
+ }
+ return $ret;
+}
+
+function update_66() {
+ $ret = array();
+ if ($GLOBALS["db_type"] == "pgsql") {
+ $ret[] = update_sql("CREATE TABLE {path} (
+ pid serial,
+ src varchar(128) NOT NULL default '',
+ dst varchar(128) NOT NULL default '',
+ PRIMARY KEY (pid)
+ )");
+ $ret[] = update_sql("CREATE INDEX path_src_idx ON {path}(src)");
+ $ret[] = update_sql("CREATE INDEX path_dst_idx ON {path}(dst)");
+ $result = db_query("SELECT nid, path FROM {node} WHERE path != ''");
+ while ($node = db_fetch_object($result)) {
+ $ret[] = update_sql("INSERT INTO {path} (src, dst) VALUES ('node/view/$node->nid', '". check_query($node->path) ."')");
+ }
+ }
+ else {
+ $ret[] = update_sql("CREATE TABLE {path} (
+ pid int(10) unsigned NOT NULL auto_increment,
+ src varchar(128) NOT NULL default '',
+ dst varchar(128) NOT NULL default '',
+ PRIMARY KEY (pid),
+ UNIQUE KEY src (src),
+ UNIQUE KEY dst (dst)
+ )");
+ // Migrate the existing paths:
+ $result = db_query("SELECT nid, path FROM {node} WHERE path != ''");
+ while ($node = db_fetch_object($result)) {
+ $ret[] = update_sql("INSERT INTO {path} (src, dst) VALUES ('node/view/$node->nid', '". check_query($node->path) ."')");
+ }
+
+ $ret[] = update_sql("ALTER TABLE {node} DROP path");
+ }
+ return $ret;
+}
+
+function update_67() {
+ $ret = array();
+ if ($GLOBALS["db_type"] == "pgsql") {
+ // Taking no action. PostgreSQL is not always capable of dropping columns.
+ }
+ else {
+ $ret[] = update_sql("ALTER TABLE {users} DROP homepage");
+ }
+ return $ret;
+}
+
+function update_68() {
+ $ret = array();
+ if ($GLOBALS["db_type"] == "pgsql") {
+ // Unneccesary. The PostgreSQL port was already using a sequence.
+ }
+ else {
+ $max = db_result(db_query("SELECT MAX(aid) FROM {access};"));
+ $ret[] = update_sql("INSERT INTO {sequences} (name, id) VALUES ('access_aid', '$max')");
+ $ret[] = update_sql("ALTER TABLE {access} CHANGE aid aid tinyint(10) NOT NULL ");
+ }
+ return $ret;
+}
+
+function update_69() {
+ $ret = array();
+ if ($GLOBALS["db_type"] == "pgsql") {
+ /* Rename the statistics table to node_counter */
+ $ret[] = update_sql("ALTER TABLE {statistics} RENAME TO {node_counter}");
+ $ret[] = update_sql("DROP INDEX {statistics}_totalcount_idx");
+ $ret[] = update_sql("DROP INDEX {statistics}_daycount_idx");
+ $ret[] = update_sql("DROP INDEX {statistics}_timestamp_idx");
+ $ret[] = update_sql("CREATE INDEX {node_counter}_totalcount_idx ON {node_counter}(totalcount)");
+ $ret[] = update_sql("CREATE INDEX {node_counter}_daycount_idx ON {node_counter}(daycount)");
+ $ret[] = update_sql("CREATE INDEX {node_counter}_timestamp_idx ON {node_counter}(timestamp)");
+
+ /* Rename the path table to url_alias */
+ $ret[] = update_sql("ALTER TABLE {path} RENAME TO {url_alias}");
+ $ret[] = update_sql("ALTER TABLE {path}_pid_seq RENAME TO {url_alias}_pid_seq");
+ }
+ else {
+ $ret[] = update_sql("ALTER TABLE {statistics} RENAME TO {node_counter}");
+ $ret[] = update_sql("ALTER TABLE {path} RENAME TO {url_alias}");
+ $ret[] = update_sql("UPDATE {sequences} SET name = '{url_alias}_pid' WHERE name = '{path}_pid'");
+ }
+
+ $ret[] = update_sql("UPDATE {users} SET name = '' WHERE uid = 0;");
+ return $ret;
+}
+
+function update_70() {
+ $ret = array();
+ $ret[] = update_sql("ALTER TABLE {variable} CHANGE name name varchar(48) NOT NULL");
+ return $ret;
+}
+
+function update_71() {
+ $ret = array();
+ if ($GLOBALS["db_type"] == "pgsql") {
+ $ret[] = update_sql("ALTER TABLE {system} ADD bootstrap integer");
+ }
+ else {
+ $ret[] = update_sql("ALTER TABLE {system} ADD bootstrap int(2)");
+ }
+ return $ret;
+}
+
+function update_72() {
+ $ret = array();
+ if ($GLOBALS["db_type"] == "pgsql") {
+ $ret[] = update_sql("ALTER TABLE {blocks} ADD throttle smallint");
+ $ret[] = update_sql("ALTER TABLE {blocks} ALTER COLUMN throttle SET DEFAULT '0'");
+ $ret[] = update_sql("UPDATE {blocks} SET throttle = 0");
+ $ret[] = update_sql("ALTER TABLE {blocks} ALTER COLUMN throttle SET NOT NULL");
+ }
+ else {
+ $ret[] = update_sql("ALTER TABLE {blocks} ADD throttle tinyint(1) NOT NULL DEFAULT '0'");
+ }
+ return $ret;
+}
+
+function update_73() {
+ $ret = array();
+ /* MySQL only update */
+ if ($GLOBALS["db_type"] == "mysql") {
+ $ret[] = update_sql("ALTER TABLE {book} CHANGE log log longtext");
+ $ret[] = update_sql("ALTER TABLE {boxes} CHANGE body body longtext");
+ $ret[] = update_sql("ALTER TABLE {cache} CHANGE data data longtext");
+ $ret[] = update_sql("ALTER TABLE {comments} CHANGE comment comment longtext");
+ $ret[] = update_sql("ALTER TABLE {comments} CHANGE users users longtext");
+ $ret[] = update_sql("ALTER TABLE {directory} CHANGE slogan slogan longtext");
+ $ret[] = update_sql("ALTER TABLE {directory} CHANGE mission mission longtext");
+ $ret[] = update_sql("ALTER TABLE {feed} CHANGE description description longtext");
+ $ret[] = update_sql("ALTER TABLE {item} CHANGE description description longtext");
+ $ret[] = update_sql("ALTER TABLE {node} CHANGE users users longtext");
+ $ret[] = update_sql("ALTER TABLE {node} CHANGE teaser teaser longtext");
+ $ret[] = update_sql("ALTER TABLE {node} CHANGE body body longtext");
+ $ret[] = update_sql("ALTER TABLE {node} CHANGE revisions revisions longtext");
+ $ret[] = update_sql("ALTER TABLE {permission} CHANGE perm perm longtext");
+ $ret[] = update_sql("ALTER TABLE {poll} CHANGE voters voters longtext");
+ $ret[] = update_sql("ALTER TABLE {sessions} CHANGE session session longtext");
+ $ret[] = update_sql("ALTER TABLE {term_data} CHANGE description description longtext");
+ $ret[] = update_sql("ALTER TABLE {users} CHANGE data data longtext");
+ $ret[] = update_sql("ALTER TABLE {variable} CHANGE value value longtext");
+ $ret[] = update_sql("ALTER TABLE {vocabulary} CHANGE description description longtext");
+ $ret[] = update_sql("ALTER TABLE {vocabulary} CHANGE nodes nodes longtext");
+ $ret[] = update_sql("ALTER TABLE {watchdog} CHANGE message message longtext");
+ }
+ return $ret;
+}
+
+function update_74() {
+ $ret = array();
+ if ($GLOBALS["db_type"] == "pgsql") {
+ $ret[] = update_sql("ALTER TABLE {system} ADD throttle smallint");
+ $ret[] = update_sql("ALTER TABLE {system} ALTER COLUMN throttle SET DEFAULT '0'");
+ $ret[] = update_sql("UPDATE {system} SET throttle = 0");
+ $ret[] = update_sql("ALTER TABLE {system} ALTER COLUMN throttle SET NOT NULL");
+ }
+ else {
+ $ret[] = update_sql("ALTER TABLE {system} ADD throttle tinyint(1) NOT NULL DEFAULT '0'");
+ }
+ return $ret;
+}
+
+function update_75() {
+ $ret = array();
+ if ($GLOBALS["db_type"] == "pgsql") {
+ $ret[] = update_sql("ALTER TABLE {feed} ADD etag text");
+ $ret[] = update_sql("ALTER TABLE {feed} ALTER COLUMN etag SET DEFAULT ''");
+ $ret[] = update_sql("ALTER TABLE {feed} ALTER COLUMN etag SET NOT NULL");
+
+ $ret[] = update_sql("ALTER TABLE {feed} ADD modified integer");
+ $ret[] = update_sql("ALTER TABLE {feed} ALTER COLUMN modified SET DEFAULT '0'");
+ $ret[] = update_sql("UPDATE {feed} SET modified = 0");
+ $ret[] = update_sql("ALTER TABLE {feed} ALTER COLUMN modified SET NOT NULL");
+
+ $ret[] = update_sql("ALTER TABLE {feed} RENAME timestamp TO checked");
+
+ $ret[] = update_sql("UPDATE {blocks} SET module = 'aggregator' WHERE module = 'import'");
+ $ret[] = update_sql("UPDATE {system} SET filename = 'modules/aggregator.module', name = 'aggregator' WHERE filename = 'modules/import.module'");
+ }
+ else {
+ $ret[] = update_sql("ALTER TABLE {feed} ADD etag varchar(255) NOT NULL DEFAULT ''");
+ $ret[] = update_sql("ALTER TABLE {feed} ADD modified int(10) NOT NULL DEFAULT 0");
+ $ret[] = update_sql("ALTER TABLE {feed} CHANGE timestamp checked int(10) NOT NULL DEFAULT 0");
+ $ret[] = update_sql("UPDATE {blocks} SET module = 'aggregator' WHERE module = 'import'");
+ $ret[] = update_sql("UPDATE {system} SET filename = 'modules/aggregator.module', name = 'aggregator' WHERE filename = 'modules/import.module'");
+ }
+ return $ret;
+}
+
+function update_76() {
+ $ret = array();
+ if ($GLOBALS["db_type"] == "pgsql") {
+ $ret[] = update_sql("ALTER TABLE {feed} ADD image text");
+ } else {
+ $ret[] = update_sql("ALTER TABLE {feed} ADD image longtext");
+ }
+ return $ret;
+}
+
+function update_77() {
+ $ret = array();
+ $ret[] = update_sql("ALTER TABLE {cache} ADD headers text");
+ return $ret;
+}
+
+function update_78() {
+ $ret = array();
+ if ($GLOBALS["db_type"] == "mysql") {
+ $ret[] = update_sql("CREATE TABLE {filters} (
+ module varchar(64) NOT NULL default '',
+ weight tinyint(2) DEFAULT '0' NOT NULL,
+ KEY weight (weight)
+ )");
+ }
+ else {
+ /* Needs PGSQL/MSSQL equivalent */
+ }
+ return $ret;
+}
+
+function update_79() {
+ $ret = array();
+ // Works for both mysql and postgresql
+ $ret[] = update_sql("ALTER TABLE {node} DROP attributes");
+ $ret[] = update_sql("ALTER TABLE {comments} DROP link");
+ return $ret;
+}
+
+function update_sql($sql) {
+ $edit = $_POST["edit"];
+ $result = db_query($sql);
+ if ($result) {
+ return array('1', nl2br(htmlentities($sql)) ." ", "<div style=\"color: green;\">OK</div>\n");
+ }
+ else {
+ return array('0', nl2br(htmlentities($sql)) ." ", "<div style=\"color: red;\">FAILED</div>\n");
+ }
+}
+
+?>
diff --git a/modules/poll.module b/modules/poll.module
index cbc95c404..faf4fc3b3 100644
--- a/modules/poll.module
+++ b/modules/poll.module
@@ -118,7 +118,7 @@ function poll_form(&$node, &$error) {
$output .= '<div class="poll-form">';
// Poll choices
- $opts = drupal_map_assoc(range(2, $node->choices * 2 + 5));
+ $opts = drupal_map_assoc(range(2, $node->choices * 2 + 5));
for ($a = 0; $a < $node->choices; $a++) {
$group1 .= form_textfield(t('Choice %n', array('%n' => ($a + 1))), "choice][$a][chtext", $node->choice[$a]['chtext'], 50, 127, $error["choice][$a][chtext"]);
if ($admin) {
@@ -129,7 +129,7 @@ function poll_form(&$node, &$error) {
$group1 .= form_checkbox(t('Need more choices'), 'morechoices', 1, 0, t("If the amount of boxes above isn't enough, check this box and click the Preview button below to add some more."));
$output .= form_group(t('Choices'), $group1);
-
+
// Poll attributes
$_duration = array_merge(array(0 => t('Unlimited')), drupal_map_assoc(array(86400, 172800, 345600, 604800, 1209600, 2419200, 4838400, 9676800, 31536000), "format_interval"));
$_active = array(0 => t('Closed'), 1 => t('Active'));
@@ -138,8 +138,8 @@ function poll_form(&$node, &$error) {
$group2 .= form_radios(t('Poll status'), 'active', isset($node->active) ? $node->active : 1, $_active, t('When a poll is closed, visitors can no longer vote for it.'));
}
$group2 .= form_select(t('Poll duration'), 'runtime', $node->runtime ? $node->runtime : 0, $_duration, t('After this period, the poll will be closed automatically.'));
-
- $output .= form_group(t('Settings'), $group2);
+
+ $output .= form_group(t('Settings'), $group2);
$output .= '</div>';
return $output;
diff --git a/modules/poll/poll.module b/modules/poll/poll.module
index cbc95c404..faf4fc3b3 100644
--- a/modules/poll/poll.module
+++ b/modules/poll/poll.module
@@ -118,7 +118,7 @@ function poll_form(&$node, &$error) {
$output .= '<div class="poll-form">';
// Poll choices
- $opts = drupal_map_assoc(range(2, $node->choices * 2 + 5));
+ $opts = drupal_map_assoc(range(2, $node->choices * 2 + 5));
for ($a = 0; $a < $node->choices; $a++) {
$group1 .= form_textfield(t('Choice %n', array('%n' => ($a + 1))), "choice][$a][chtext", $node->choice[$a]['chtext'], 50, 127, $error["choice][$a][chtext"]);
if ($admin) {
@@ -129,7 +129,7 @@ function poll_form(&$node, &$error) {
$group1 .= form_checkbox(t('Need more choices'), 'morechoices', 1, 0, t("If the amount of boxes above isn't enough, check this box and click the Preview button below to add some more."));
$output .= form_group(t('Choices'), $group1);
-
+
// Poll attributes
$_duration = array_merge(array(0 => t('Unlimited')), drupal_map_assoc(array(86400, 172800, 345600, 604800, 1209600, 2419200, 4838400, 9676800, 31536000), "format_interval"));
$_active = array(0 => t('Closed'), 1 => t('Active'));
@@ -138,8 +138,8 @@ function poll_form(&$node, &$error) {
$group2 .= form_radios(t('Poll status'), 'active', isset($node->active) ? $node->active : 1, $_active, t('When a poll is closed, visitors can no longer vote for it.'));
}
$group2 .= form_select(t('Poll duration'), 'runtime', $node->runtime ? $node->runtime : 0, $_duration, t('After this period, the poll will be closed automatically.'));
-
- $output .= form_group(t('Settings'), $group2);
+
+ $output .= form_group(t('Settings'), $group2);
$output .= '</div>';
return $output;
diff --git a/themes/xtemplate/pushbutton/xtemplate.css b/themes/xtemplate/pushbutton/xtemplate.css
index bcbb6beb2..154b6d7c4 100644
--- a/themes/xtemplate/pushbutton/xtemplate.css
+++ b/themes/xtemplate/pushbutton/xtemplate.css
@@ -5,16 +5,16 @@
*/
body {
color: #000;
- background-color: #fff;
- margin: 0;
+ background-color: #fff;
+ margin: 0;
padding: 0;
}
-body, p, td, li, ul, ol {
- font-family: Verdana, Helvetica, Arial, sans-serif;
+body, p, td, li, ul, ol {
+ font-family: Verdana, Helvetica, Arial, sans-serif;
}
-h1, h2, h3, h4, h5, h6 {
- font-family: "Trebuchet MS", Geneva, Arial, Helvetica, SunSans-Regular, Verdana, sans-serif;
- color: #369;
+h1, h2, h3, h4, h5, h6 {
+ font-family: "Trebuchet MS", Geneva, Arial, Helvetica, SunSans-Regular, Verdana, sans-serif;
+ color: #369;
}
img {
display: block;
@@ -89,8 +89,8 @@ pre {
/*
** Page layout blocks / IDs
*/
-table#primary-links-table {
- background-color: #e0edfb;
+table#primary-links-table {
+ background-color: #e0edfb;
}
table#primary-links-table tr {
background: transparent url(header-a.jpg) left bottom repeat;
@@ -105,33 +105,33 @@ td#home a:hover img {
width: 144px;
height: 63px;
}
-#primary-links {
+#primary-links {
background: transparent url(header-b.jpg) left top no-repeat;
font-size: 0.85em;
}
-#primary-links h1, #primary-links h2, #primary-links h3 {
+#primary-links h1, #primary-links h2, #primary-links h3 {
font-size: 1.7em;
}
-#primary-links a {
- color: #369;
+#primary-links a {
+ color: #369;
}
#primary-links a:hover {
color: #000;
}
-table#secondary-links-table {
- background-color: #369;
- border-top: 3px solid #69c;
+table#secondary-links-table {
+ background-color: #369;
+ border-top: 3px solid #69c;
border-bottom: 3px solid #69c;
font-size: 0.85em;
}
-td#secondary-links {
+td#secondary-links {
color: #e4e9eb;
}
-#secondary-links a {
+#secondary-links a {
color: #e4e9eb;
}
-#secondary-links a:hover {
- color: #fff;
+#secondary-links a:hover {
+ color: #fff;
text-decoration: underline;
}
#content {
@@ -161,11 +161,11 @@ td#secondary-links {
#mission {
background-color: #fff;
color: #696969;
- border-top: 2px solid #dcdcdc;
+ border-top: 2px solid #dcdcdc;
border-bottom: 2px solid #dcdcdc;
padding: 10px 10px 10px 10px;
margin: 20px 35px 0px 35px;
- font-family: "Trebuchet MS", Geneva, Arial, Helvetica, SunSans-Regular, Verdana, sans-serif;
+ font-family: "Trebuchet MS", Geneva, Arial, Helvetica, SunSans-Regular, Verdana, sans-serif;
font-size: 1.1em;
font-weight: normal;
}
@@ -221,7 +221,7 @@ td#secondary-links {
color: #aaa;
}
table#footer-links {
- border-top: 3px solid #6699cc;
+ border-top: 3px solid #6699cc;
border-bottom: 3px solid #6699cc;
background-color: #369;
color: #e4e9eb;
@@ -280,7 +280,7 @@ table#footer-links {
.box h2 {
font-size: 9px;
}
-.block .title h3 {
+.block .title h3 {
border-bottom: 2px solid #6699cc;
color: #369;
font-size: 18px;
@@ -289,7 +289,7 @@ table#footer-links {
margin-bottom: .25em;
background: transparent url(icon-block.gif) left center no-repeat;
}
-.block .content {
+.block .content {
padding: 5px 5px 5px 5px;
}
.block {
diff --git a/update.php b/update.php
index 9e984c945..b92e011d7 100644
--- a/update.php
+++ b/update.php
@@ -19,692 +19,18 @@ if (!ini_get("safe_mode")) {
set_time_limit(180);
}
-// Define the various updates in an array("date : comment" => "function");
-$mysql_updates = array(
- "2002-06-22: first update since Drupal 4.0.0 release" => "update_32",
- "2002-07-07" => "update_33",
- "2002-07-31" => "update_34",
- "2002-08-10" => "update_35",
- "2002-08-16" => "update_36",
- "2002-08-19" => "update_37",
- "2002-08-26" => "update_38",
- "2002-09-15" => "update_39",
- "2002-09-17" => "update_40",
- "2002-10-13" => "update_41",
- "2002-10-17" => "update_42",
- "2002-10-26" => "update_43",
- "2002-11-08" => "update_44",
- "2002-11-20" => "update_45",
- "2002-12-10: first update since Drupal 4.1.0 release" => "update_46",
- "2002-12-29" => "update_47",
- "2003-01-03" => "update_48",
- "2003-01-05" => "update_49",
- "2003-01-15" => "update_50",
- "2003-04-19" => "update_51",
- "2003-04-20" => "update_52",
- "2003-05-18" => "update_53",
- "2003-05-24" => "update_54",
- "2003-05-31" => "update_55",
- "2003-06-04" => "update_56",
- "2003-06-08" => "update_57",
- "2003-06-08: first update since Drupal 4.2.0 release" => "update_58",
- "2003-08-05" => "update_59",
- "2003-08-15" => "update_60",
- "2003-08-20" => "update_61",
- "2003-08-27" => "update_62",
- "2003-09-09" => "update_63",
- "2003-09-10" => "update_64",
- "2003-09-29" => "update_65",
- "2003-09-30" => "update_66",
- "2003-10-11" => "update_67",
- "2003-10-20" => "update_68",
- "2003-10-22" => "update_69",
- "2003-10-27" => "update_70",
- "2003-11-17: first update since Drupal 4.3.0 release" => "update_71",
- "2003-11-27" => "update_72",
- "2003-12-03" => "update_73",
- "2003-12-06" => "update_74",
- "2004-01-06" => "update_75",
- "2004-01-11" => "update_76",
- "2004-01-13" => "update_77",
- "2004-02-03" => "update_78",
- "2004-02-21" => "update_79"
-);
-
-function update_32() {
- update_sql("ALTER TABLE users ADD index (sid(4))");
- update_sql("ALTER TABLE users ADD index (timestamp)");
- update_sql("ALTER TABLE users ADD UNIQUE KEY name (name)");
-}
-
-function update_33() {
- $result = db_query("SELECT * FROM variable WHERE value NOT LIKE 's:%;'");
- // NOTE: the "WHERE"-part of the query above avoids variables to get serialized twice.
- while ($variable = db_fetch_object($result)) {
- variable_set($variable->name, $variable->value);
- }
-}
-
-function update_34() {
- update_sql("ALTER TABLE feed MODIFY refresh int(10) NOT NULL default '0'");
- update_sql("ALTER TABLE feed MODIFY timestamp int (10) NOT NULL default '0'");
- update_sql("ALTER TABLE users CHANGE session session TEXT");
-}
-
-function update_35() {
- update_sql("ALTER TABLE poll_choices ADD INDEX (nid)");
-}
-
-function update_36() {
- update_sql("ALTER TABLE rating CHANGE old previous int(6) NOT NULL default '0'");
- update_sql("ALTER TABLE rating CHANGE new current int(6) NOT NULL default '0'");
-}
-
-function update_37() {
-
- update_sql("DROP TABLE IF EXISTS sequences");
-
- update_sql("CREATE TABLE sequences (
- name VARCHAR(255) NOT NULL PRIMARY KEY,
- id INT UNSIGNED NOT NULL
- ) TYPE=MyISAM");
-
- if ($max = db_result(db_query("SELECT MAX(nid) FROM node"))) {
- update_sql("REPLACE INTO sequences VALUES ('node', $max)");
- }
-
- if ($max = db_result(db_query("SELECT MAX(cid) FROM comments"))) {
- update_sql("REPLACE INTO sequences VALUES ('comments', $max)");
- }
- // NOTE: move the comments bit down as soon as we switched to use the new comment module!
-
- if ($max = db_result(db_query("SELECT MAX(tid) FROM term_data"))) {
- update_sql("REPLACE INTO sequences VALUES ('term_data', $max)");
- }
-}
-
-function update_38() {
- update_sql("ALTER TABLE watchdog CHANGE message message text NOT NULL default ''");
-}
-
-function update_39() {
- update_sql("DROP TABLE moderate");
-
- update_sql("ALTER TABLE comments ADD score MEDIUMINT NOT NULL");
- update_sql("ALTER TABLE comments ADD status TINYINT UNSIGNED NOT NULL");
- update_sql("ALTER TABLE comments ADD users MEDIUMTEXT");
-
- update_sql("CREATE TABLE moderation_votes (
- mid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
- vote VARCHAR(255),
- weight TINYINT NOT NULL
- )");
-
- update_sql("CREATE TABLE moderation_roles (
- rid INT UNSIGNED NOT NULL,
- mid INT UNSIGNED NOT NULL,
- value TINYINT NOT NULL
- )");
-
- update_sql("ALTER TABLE moderation_roles ADD INDEX (rid)");
- update_sql("ALTER TABLE moderation_roles ADD INDEX (mid)");
-
- update_sql("CREATE TABLE moderation_filters (
- fid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
- filter VARCHAR(255) NOT NULL,
- minimum SMALLINT NOT NULL
- )");
-
- update_sql("DELETE FROM moderation_votes");
- update_sql("INSERT INTO moderation_votes VALUES (1, '+1', 0)");
- update_sql("INSERT INTO moderation_votes VALUES (2, '-1', 1)");
-
- update_sql("DELETE FROM moderation_roles");
- update_sql("INSERT INTO moderation_roles VALUES (2, 1, 1)");
- update_sql("INSERT INTO moderation_roles VALUES (2, 2, -1)");
-
- update_sql("CREATE TABLE forum (
- nid int unsigned not null primary key,
- icon varchar(255) not null,
- shadow int unsigned not null
- )");
-}
-
-function update_40() {
- if ($max = db_result(db_query("SELECT MAX(cid) FROM comments"))) {
- update_sql("REPLACE INTO sequences VALUES ('comments', $max)");
- }
-}
-
-function update_41() {
- update_sql("CREATE TABLE statistics (
- nid int(11) NOT NULL,
- totalcount bigint UNSIGNED DEFAULT '0' NOT NULL,
- daycount mediumint UNSIGNED DEFAULT '0' NOT NULL,
- timestamp int(11) UNSIGNED DEFAULT '0' NOT NULL,
- PRIMARY KEY (nid),
- INDEX (totalcount),
- INDEX (daycount),
- INDEX (timestamp)
- )");
-
- update_sql("CREATE TABLE accesslog (
- nid int(11) UNSIGNED DEFAULT '0',
- url varchar(255),
- hostname varchar(128),
- uid int(10) UNSIGNED DEFAULT '0',
- timestamp int(11) UNSIGNED NOT NULL
- )");
-}
-
-function update_42() {
- update_sql("DROP TABLE modules");
- update_sql("DROP TABLE layout");
- update_sql("DROP TABLE referrer");
-}
-
-function update_43() {
- update_sql("ALTER TABLE blocks DROP remove");
- update_sql("ALTER TABLE blocks DROP name");
- update_sql("UPDATE boxes SET type = 0 WHERE type = 1");
- update_sql("UPDATE boxes SET type = 1 WHERE type = 2");
-}
-
-function update_44() {
- update_sql("UPDATE system SET filename = CONCAT('modules/', filename) WHERE type = 'module'");
-}
-
-function update_45() {
- update_sql("ALTER TABLE page ADD description varchar(128) NOT NULL default ''");
-}
-
-function update_46() {
- if ($GLOBALS["db_type"] == "pgsql") {
- update_sql("ALTER TABLE cache ADD created integer");
- }
- else {
- update_sql("ALTER TABLE cache ADD created int(11) NOT NULL default '0'");
- }
-}
-
-function update_47() {
- if ($max = db_result(db_query("SELECT MAX(vid) FROM vocabulary"))) {
- update_sql("REPLACE INTO sequences VALUES ('vocabulary', $max)");
- }
-}
-
-function update_48() {
- update_sql("ALTER TABLE watchdog ADD link varchar(255) DEFAULT '' NULL");
-}
-
-function update_49() {
- /*
- ** Make sure the admin module is added to the system table or the
- ** admin menus won't show up.
- */
-
- update_sql("DELETE FROM system WHERE name = 'admin';");
- update_sql("INSERT INTO system VALUES ('modules/admin.module','admin','module','',1)");
-}
-
-function update_50() {
- update_sql("ALTER TABLE forum ADD tid INT UNSIGNED NOT NULL");
- $result = db_queryd("SELECT n.nid, t.tid FROM node n, term_node t WHERE n.nid = t.nid AND type = 'forum'");
- while ($node = db_fetch_object($result)) {
- db_queryd("UPDATE forum SET tid = %d WHERE nid = %d", $node->tid, $node->nid);
- }
- update_sql("ALTER TABLE forum ADD INDEX (tid)");
-}
-
-function update_51() {
- update_sql("ALTER TABLE blocks CHANGE delta delta varchar(32) NOT NULL default '0'");
-}
-
-function update_52() {
- update_sql("UPDATE sequences SET name = 'comments_cid' WHERE name = 'comments';");
- update_sql("UPDATE sequences SET name = 'node_nid' WHERE name = 'node';");
-
- update_sql("DELETE FROM sequences WHERE name = 'import'");
- update_sql("DELETE FROM sequences WHERE name = 'bundle_bid'"); // in case we would run this entry twice
- update_sql("DELETE FROM sequences WHERE name = 'feed_fid'"); // in case we would run this entry twice
-
- $bundles = db_result(db_query("SELECT MAX(bid) FROM bundle;"));
- update_sql("INSERT INTO sequences (name, id) VALUES ('bundle_bid', '$bundles')");
-
- $feeds = db_result(db_query("SELECT MAX(fid) FROM feed;"));
- update_sql("INSERT INTO sequences (name, id) VALUES ('feed_fid', '$feeds')");
-
- update_sql("UPDATE sequences SET name = 'vocabulary_vid' WHERE name = 'vocabulary';");
-
- update_sql("UPDATE sequences SET name = 'term_data_tid' WHERE name = 'term_data'");
-}
-
-function update_53() {
- update_sql("CREATE INDEX book_parent ON book(parent);");
-}
-
-function update_54() {
- update_sql("ALTER TABLE locales CHANGE string string BLOB DEFAULT '' NOT NULL");
-}
-
-function update_55() {
- update_sql("ALTER TABLE site ADD checked INT(11) NOT NULL;");
- update_sql("ALTER TABLE site CHANGE timestamp changed INT(11) NOT NULL;");
-}
-
-function update_56() {
- update_sql("ALTER TABLE vocabulary CHANGE types nodes TEXT DEFAULT '' NOT NULL");
-}
-
-function update_57() {
- update_sql("DELETE FROM variable WHERE name = 'site_charset'");
-}
-
-function update_58() {
- if ($GLOBALS["db_type"] == "pgsql") {
- update_sql("ALTER TABLE {node} ADD path varchar(250) NULL");
- update_sql("ALTER TABLE {node} ALTER COLUMN path SET DEFAULT ''");
- }
- else {
- update_sql("ALTER TABLE {node} ADD path varchar(250) NULL default ''");
- }
-}
-
-function update_59() {
- if ($GLOBALS["db_type"] == "pgsql") {
- update_sql("ALTER TABLE {comments} ADD thread VARCHAR(255)");
- update_sql("ALTER TABLE {comments} ALTER COLUMN thread SET NOT NULL");
- }
- else {
- update_sql("ALTER TABLE {comments} ADD thread VARCHAR(255) NOT NULL");
- }
-
- $result = db_query("SELECT DISTINCT(nid) FROM {comments} WHERE thread = ''");
-
- while ($node = db_fetch_object($result)) {
- $result2 = db_query("SELECT cid, pid FROM {comments} where nid = '%d' ORDER BY timestamp", $node->nid);
- $comments = array();
- while ($comment = db_fetch_object($result2)) {
- $comments[$comment->cid] = $comment;
- }
-
- $structure = array();
- $structure = _update_thread_structure($comments, 0, -1, $structure);
-
- foreach ($structure as $cid => $thread) {
- $new_parts = array();
- foreach(explode(".", $thread) as $part) {
- if ($part > 9) {
- $start = substr($part, 0, strlen($part) - 1);
- $end = substr($part, -1, 1);
-
- $new_parts[] = str_repeat("9", $start).$end;
- }
- else {
- $new_parts[] = $part;
- }
- }
- $thread = implode(".", $new_parts);
-
- db_query("UPDATE {comments} SET thread = '%s' WHERE cid = '%d'", $thread."/", $comments[$cid]->cid);
- }
- }
-}
-
-function _update_thread_structure($comments, $pid, $depth, $structure) {
- $depth++;
-
- foreach ($comments as $key => $comment) {
- if ($comment->pid == $pid) {
- if ($structure[$comment->pid]) {
- $structure[$comment->cid] = $structure[$comment->pid]."."._update_next_thread($structure, $structure[$comment->pid]);
- }
- else {
- $structure[$comment->cid] = _update_next_thread($structure, "");
- }
-
- $structure = _update_thread_structure($comments, $comment->cid, $depth, $structure);
- }
- }
-
- return $structure;
-}
-
-function update_60() {
- update_sql("ALTER TABLE {forum} DROP icon");
-}
-
-function update_61() {
- if ($GLOBALS["db_type"] == "pgsql") {
- update_sql("CREATE TABLE {sessions} (
- uid integer NOT NULL,
- sid varchar(32) NOT NULL default '',
- hostname varchar(128) NOT NULL default '',
- timestamp integer NOT NULL default '0',
- session text,
- PRIMARY KEY (sid)
- );");
-
- update_sql("ALTER TABLE {users} DROP session;");
- update_sql("ALTER TABLE {users} DROP hostname;");
- update_sql("ALTER TABLE {users} DROP sid;");
-
- }
- else {
- update_sql("CREATE TABLE IF NOT EXISTS {sessions} (
- uid int(10) unsigned NOT NULL,
- sid varchar(32) NOT NULL default '',
- hostname varchar(128) NOT NULL default '',
- timestamp int(11) NOT NULL default '0',
- session text,
- KEY uid (uid),
- KEY sid (sid(4)),
- KEY timestamp (timestamp)
- )");
-
- update_sql("ALTER TABLE {users} DROP session;");
- update_sql("ALTER TABLE {users} DROP hostname;");
- update_sql("ALTER TABLE {users} DROP sid;");
- }
-}
-
-function update_62() {
- if ($GLOBALS["db_type"] == "pgsql") {
- update_sql("CREATE INDEX accesslog_timestamp ON {accesslog} (timestamp)");
-
- update_sql("DROP INDEX node_type_idx");
- update_sql("DROP INDEX node_title_idx");
- update_sql("DROP INDEX node_promote_idx");
-
- update_sql("CREATE INDEX node_type ON {node} (type)");
- update_sql("CREATE INDEX node_title_type ON {node} (title,type)");
- update_sql("CREATE INDEX node_moderate ON {node} (moderate)");
- update_sql("CREATE INDEX node_path ON {node} (path)");
- update_sql("CREATE INDEX node_promote_status ON {node} (promote, status)");
-
- }
- else {
- update_sql("ALTER TABLE {accesslog} ADD INDEX accesslog_timestamp (timestamp)");
-
- update_sql("ALTER TABLE {node} DROP INDEX type");
- update_sql("ALTER TABLE {node} DROP INDEX title");
- update_sql("ALTER TABLE {node} DROP INDEX promote");
-
- update_sql("ALTER TABLE {node} ADD INDEX node_type (type(4))");
- update_sql("ALTER TABLE {node} ADD INDEX node_title_type (title,type(4))");
- update_sql("ALTER TABLE {node} ADD INDEX node_moderate (moderate)");
- update_sql("ALTER TABLE {node} ADD INDEX node_path (path(5))");
- update_sql("ALTER TABLE {node} ADD INDEX node_promote_status (promote, status)");
- }
-}
-
-function _update_next_thread($structure, $parent) {
- do {
- $val++;
- if ($parent) {
- $thread = "$parent.$val";
- }
- else {
- $thread = $val;
- }
-
- } while (array_search($thread, $structure));
-
- return $val;
-}
-
-function update_63() {
- if ($GLOBALS["db_type"] == "pgsql") {
- update_sql("INSERT INTO {users} (uid, name, mail, timestamp) VALUES ('0', '', '', '". time() ."')");
- }
- else {
- update_sql("ALTER TABLE {users} CHANGE uid uid int(10) unsigned NOT NULL default '0'");
- update_sql("INSERT INTO {users} (uid, name, mail, timestamp) VALUES ('0', '', '', '". time() ."')");
- $users = db_result(db_query("SELECT MAX(uid) FROM {users};"));
- update_sql("INSERT INTO {sequences} (name, id) VALUES ('users_uid', '$users')");
- }
-}
-
-function update_64() {
- update_sql("UPDATE {users} SET rid = 1 WHERE uid = 0");
-}
-
-function update_65() {
- // PostgreSQL-only update.
- if ($GLOBALS["db_type"] == "pgsql") {
- update_sql("CREATE FUNCTION \"rand\"() RETURNS float AS '
- BEGIN
- RETURN random();
- END;' LANGUAGE 'plpgsql'");
- }
-}
-
-function update_66() {
- if ($GLOBALS["db_type"] == "pgsql") {
- update_sql("CREATE TABLE {path} (
- pid serial,
- src varchar(128) NOT NULL default '',
- dst varchar(128) NOT NULL default '',
- PRIMARY KEY (pid)
- )");
- update_sql("CREATE INDEX path_src_idx ON {path}(src)");
- update_sql("CREATE INDEX path_dst_idx ON {path}(dst)");
- $result = db_query("SELECT nid, path FROM {node} WHERE path != ''");
- while ($node = db_fetch_object($result)) {
- update_sql("INSERT INTO {path} (src, dst) VALUES ('node/view/$node->nid', '". check_query($node->path) ."')");
- }
- }
- else {
- update_sql("CREATE TABLE {path} (
- pid int(10) unsigned NOT NULL auto_increment,
- src varchar(128) NOT NULL default '',
- dst varchar(128) NOT NULL default '',
- PRIMARY KEY (pid),
- UNIQUE KEY src (src),
- UNIQUE KEY dst (dst)
- )");
- // Migrate the existing paths:
- $result = db_query("SELECT nid, path FROM {node} WHERE path != ''");
- while ($node = db_fetch_object($result)) {
- update_sql("INSERT INTO {path} (src, dst) VALUES ('node/view/$node->nid', '". check_query($node->path) ."')");
- }
-
- update_sql("ALTER TABLE {node} DROP path");
- }
-}
-
-function update_67() {
- if ($GLOBALS["db_type"] == "pgsql") {
- // Taking no action. PostgreSQL is not always capable of dropping columns.
- }
- else {
- update_sql("ALTER TABLE {users} DROP homepage");
- }
-}
-
-function update_68() {
- if ($GLOBALS["db_type"] == "pgsql") {
- // Unneccesary. The PostgreSQL port was already using a sequence.
- }
- else {
- $max = db_result(db_query("SELECT MAX(aid) FROM {access};"));
- update_sql("INSERT INTO {sequences} (name, id) VALUES ('access_aid', '$max')");
- update_sql("ALTER TABLE {access} CHANGE aid aid tinyint(10) NOT NULL ");
- }
-}
-
-function update_69() {
- if ($GLOBALS["db_type"] == "pgsql") {
- /* Rename the statistics table to node_counter */
- update_sql("ALTER TABLE {statistics} RENAME TO {node_counter}");
- update_sql("DROP INDEX {statistics}_totalcount_idx");
- update_sql("DROP INDEX {statistics}_daycount_idx");
- update_sql("DROP INDEX {statistics}_timestamp_idx");
- update_sql("CREATE INDEX {node_counter}_totalcount_idx ON {node_counter}(totalcount)");
- update_sql("CREATE INDEX {node_counter}_daycount_idx ON {node_counter}(daycount)");
- update_sql("CREATE INDEX {node_counter}_timestamp_idx ON {node_counter}(timestamp)");
-
- /* Rename the path table to url_alias */
- update_sql("ALTER TABLE {path} RENAME TO {url_alias}");
- update_sql("ALTER TABLE {path}_pid_seq RENAME TO {url_alias}_pid_seq");
- }
- else {
- update_sql("ALTER TABLE {statistics} RENAME TO {node_counter}");
- update_sql("ALTER TABLE {path} RENAME TO {url_alias}");
- update_sql("UPDATE {sequences} SET name = '{url_alias}_pid' WHERE name = '{path}_pid'");
- }
-
- update_sql("UPDATE {users} SET name = '' WHERE uid = 0;");
-}
-
-function update_70() {
- update_sql("ALTER TABLE {variable} CHANGE name name varchar(48) NOT NULL");
-}
-
-function update_71() {
- if ($GLOBALS["db_type"] == "pgsql") {
- update_sql("ALTER TABLE {system} ADD bootstrap integer");
- }
- else {
- update_sql("ALTER TABLE {system} ADD bootstrap int(2)");
- }
-}
-
-function update_72() {
- if ($GLOBALS["db_type"] == "pgsql") {
- update_sql("ALTER TABLE {blocks} ADD throttle smallint");
- update_sql("ALTER TABLE {blocks} ALTER COLUMN throttle SET DEFAULT '0'");
- update_sql("UPDATE {blocks} SET throttle = 0");
- update_sql("ALTER TABLE {blocks} ALTER COLUMN throttle SET NOT NULL");
- }
- else {
- update_sql("ALTER TABLE {blocks} ADD throttle tinyint(1) NOT NULL DEFAULT '0'");
- }
-}
-
-function update_73() {
- /* MySQL only update */
- if ($GLOBALS["db_type"] == "mysql") {
- update_sql("ALTER TABLE {book} CHANGE log log longtext");
- update_sql("ALTER TABLE {boxes} CHANGE body body longtext");
- update_sql("ALTER TABLE {cache} CHANGE data data longtext");
- update_sql("ALTER TABLE {comments} CHANGE comment comment longtext");
- update_sql("ALTER TABLE {comments} CHANGE users users longtext");
- update_sql("ALTER TABLE {directory} CHANGE slogan slogan longtext");
- update_sql("ALTER TABLE {directory} CHANGE mission mission longtext");
- update_sql("ALTER TABLE {feed} CHANGE description description longtext");
- update_sql("ALTER TABLE {item} CHANGE description description longtext");
- update_sql("ALTER TABLE {node} CHANGE users users longtext");
- update_sql("ALTER TABLE {node} CHANGE teaser teaser longtext");
- update_sql("ALTER TABLE {node} CHANGE body body longtext");
- update_sql("ALTER TABLE {node} CHANGE revisions revisions longtext");
- update_sql("ALTER TABLE {permission} CHANGE perm perm longtext");
- update_sql("ALTER TABLE {poll} CHANGE voters voters longtext");
- update_sql("ALTER TABLE {sessions} CHANGE session session longtext");
- update_sql("ALTER TABLE {term_data} CHANGE description description longtext");
- update_sql("ALTER TABLE {users} CHANGE data data longtext");
- update_sql("ALTER TABLE {variable} CHANGE value value longtext");
- update_sql("ALTER TABLE {vocabulary} CHANGE description description longtext");
- update_sql("ALTER TABLE {vocabulary} CHANGE nodes nodes longtext");
- update_sql("ALTER TABLE {watchdog} CHANGE message message longtext");
- }
-}
-
-function update_74() {
- if ($GLOBALS["db_type"] == "pgsql") {
- update_sql("ALTER TABLE {system} ADD throttle smallint");
- update_sql("ALTER TABLE {system} ALTER COLUMN throttle SET DEFAULT '0'");
- update_sql("UPDATE {system} SET throttle = 0");
- update_sql("ALTER TABLE {system} ALTER COLUMN throttle SET NOT NULL");
- }
- else {
- update_sql("ALTER TABLE {system} ADD throttle tinyint(1) NOT NULL DEFAULT '0'");
- }
-}
-
-function update_75() {
- if ($GLOBALS["db_type"] == "pgsql") {
- update_sql("ALTER TABLE {feed} ADD etag text");
- update_sql("ALTER TABLE {feed} ALTER COLUMN etag SET DEFAULT ''");
- update_sql("ALTER TABLE {feed} ALTER COLUMN etag SET NOT NULL");
-
- update_sql("ALTER TABLE {feed} ADD modified integer");
- update_sql("ALTER TABLE {feed} ALTER COLUMN modified SET DEFAULT '0'");
- update_sql("UPDATE {feed} SET modified = 0");
- update_sql("ALTER TABLE {feed} ALTER COLUMN modified SET NOT NULL");
-
- update_sql("ALTER TABLE {feed} RENAME timestamp TO checked");
- update_sql("UPDATE {blocks} SET module = 'aggregator' WHERE module = 'import'");
- update_sql("UPDATE {system} SET filename = 'modules/aggregator.module', name = 'aggregator' WHERE filename = 'modules/import.module'");
- }
- else {
- update_sql("ALTER TABLE {feed} ADD etag varchar(255) NOT NULL DEFAULT ''");
- update_sql("ALTER TABLE {feed} ADD modified int(10) NOT NULL DEFAULT 0");
- update_sql("ALTER TABLE {feed} CHANGE timestamp checked int(10) NOT NULL DEFAULT 0");
- update_sql("UPDATE {blocks} SET module = 'aggregator' WHERE module = 'import'");
- update_sql("UPDATE {system} SET filename = 'modules/aggregator.module', name = 'aggregator' WHERE filename = 'modules/import.module'");
- }
-}
-
-function update_76() {
- if ($GLOBALS["db_type"] == "pgsql") {
- update_sql("ALTER TABLE {feed} ADD image text");
- } else {
- update_sql("ALTER TABLE {feed} ADD image longtext");
- }
-}
-
-function update_77() {
- update_sql("ALTER TABLE {cache} ADD headers text");
-}
-
-function update_78() {
- if ($GLOBALS["db_type"] == "mysql") {
- update_sql("CREATE TABLE {filters} (
- module varchar(64) NOT NULL default '',
- weight tinyint(2) DEFAULT '0' NOT NULL,
- KEY weight (weight)
- )");
- }
- else {
- update_sql("CREATE TABLE {filters} (
- module varchar(64) NOT NULL default '',
- weight smallint DEFAULT '0' NOT NULL,
- PRIMARY KEY (weight)
- )");
- }
-}
-
-function update_79() {
- // Works for both mysql and postgresql
- update_sql("ALTER TABLE {node} DROP attributes");
- update_sql("ALTER TABLE {comments} DROP link");
-}
-
-/*
-** System functions
-*/
-
-function update_sql($sql) {
- $edit = $_POST["edit"];
- print nl2br(htmlentities($sql)) ." ";
- $result = db_query($sql);
- if ($result) {
- print "<div style=\"color: green;\">OK</div>\n";
- return 1;
- }
- else {
- print "<div style=\"color: red;\">FAILED</div>\n";
- return 0;
- }
-}
+include_once "database/updates.inc";
function update_data($start) {
- global $mysql_updates;
- $mysql_updates = array_slice($mysql_updates, ($start-- ? $start : 0));
- foreach ($mysql_updates as $date => $func) {
+ global $sql_updates;
+ $sql_updates = array_slice($sql_updates, ($start-- ? $start : 0));
+ foreach ($sql_updates as $date => $func) {
print "<strong>$date</strong><br />\n<pre>\n";
- $func();
+ $ret = $func();
+ foreach ($ret as $return) {
+ print $return[1];
+ print $return[2];
+ }
variable_set("update_start", $date);
print "</pre>\n";
}
@@ -729,7 +55,7 @@ function update_page_footer() {
}
function update_page() {
- global $user, $mysql_updates;
+ global $user, $sql_updates;
$edit = $_POST["edit"];
@@ -755,7 +81,7 @@ function update_page() {
$start = variable_get("update_start", 0);
$dates[] = "All";
$i = 1;
- foreach ($mysql_updates as $date => $sql) {
+ foreach ($sql_updates as $date => $sql) {
$dates[$i++] = $date;
if ($date == $start) {
$selected = $i;