summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--database/database.mysql11
-rw-r--r--database/database.pgsql9
-rw-r--r--includes/tablesort.inc13
-rw-r--r--modules/forum.module4
-rw-r--r--modules/forum/forum.module4
-rw-r--r--update.php24
6 files changed, 44 insertions, 21 deletions
diff --git a/database/database.mysql b/database/database.mysql
index e64bf687a..94b711551 100644
--- a/database/database.mysql
+++ b/database/database.mysql
@@ -25,7 +25,8 @@ CREATE TABLE accesslog (
url varchar(255) default NULL,
hostname varchar(128) default NULL,
uid int(10) unsigned default '0',
- timestamp int(11) unsigned NOT NULL default '0'
+ timestamp int(11) unsigned NOT NULL default '0',
+ KEY accesslog_timestamp (timestamp)
) TYPE=MyISAM;
--
@@ -280,11 +281,13 @@ CREATE TABLE node (
revisions text NOT NULL,
static int(2) NOT NULL default '0',
PRIMARY KEY (nid),
- KEY type (type),
- KEY title (title,type),
- KEY promote (promote),
+ KEY node_type (type(4)),
+ KEY node_title_type (title,type(4)),
KEY status (status),
KEY uid (uid)
+ KEY node_moderate (moderate);
+ KEY node_path (path(5));
+ KEY node_promote_status (promote, status);
) TYPE=MyISAM;
--
diff --git a/database/database.pgsql b/database/database.pgsql
index 74b5cde3c..d98bfcdce 100644
--- a/database/database.pgsql
+++ b/database/database.pgsql
@@ -25,6 +25,7 @@ CREATE TABLE accesslog (
uid integer default '0',
timestamp integer NOT NULL default '0'
);
+CREATE INDEX accesslog_timestamp_idx ON accesslog (timestamp);
--
-- Table structure for authmap
@@ -280,11 +281,13 @@ CREATE TABLE node (
static integer NOT NULL default '0',
PRIMARY KEY (nid)
);
-CREATE INDEX node_type_idx ON node(type);
-CREATE INDEX node_title_idx ON node(title,type);
-CREATE INDEX node_promote_idx ON node(promote);
+CREATE INDEX node_type_idx ON node(type(4));
+CREATE INDEX node_title_idx ON node(title,type(4));
CREATE INDEX node_status_idx ON node(status);
CREATE INDEX node_uid_idx ON node(uid);
+CREATE INDEX node_moderate_idx ON node (moderate);
+CREATE INDEX node_path_idx ON node (path(8));
+CREATE INDEX node_promote_status_idx ON node (promote, status);
--
-- Table structure for page
diff --git a/includes/tablesort.inc b/includes/tablesort.inc
index b0a17b027..65b0fdca2 100644
--- a/includes/tablesort.inc
+++ b/includes/tablesort.inc
@@ -14,7 +14,9 @@ function tablesort_init($header) {
}
function tablesort_pager() {
- return array ("order" => $_GET['order'], "sort" => $_GET['sort']);
+ $cgi = $_SERVER['REQUEST_METHOD'] == 'GET' ? $_GET : $_POST;
+ unset($cgi["q"], $cgi["from"]);
+ return $cgi;
}
function tablesort_sql($header) {
@@ -26,19 +28,22 @@ function tablesort($cell, $header) {
global $theme;
$ts = tablesort_init($header);
+ $title = t("sort by %s", array("%s" => $cell["data"]));
// special formatting for the currently sorted column header
if ($cell["data"] == $ts["order"]) {
$cell["class"] = "cell-highlight";
- $image = "&nbsp;<img src=\"". $theme->image("arrow-". $ts["sort"]. ".gif"). "\"></img>";
+ $image = "&nbsp;<img border=\"0\" src=\"". $theme->image("arrow-". $ts["sort"]. ".gif"). "\"></img>";
+ $dir = array("asc" => "ascending", "desc" => "descending");
+ $title = t("sort ". $dir[$ts["sort"]]);
}
- $cell["data"] = l($cell["data"] . $image, $_GET["q"], array(), "sort=". $ts["sort"]. "&order=". urlencode($cell["data"]). $ts["query_string"]);
+
+ $cell["data"] = l($cell["data"] . $image, $_GET["q"], array("title" => $title), "sort=". $ts["sort"]. "&order=". urlencode($cell["data"]). $ts["query_string"]);
return $cell;
}
function tablesort_get_querystring() {
$cgi = $_SERVER['REQUEST_METHOD'] == 'GET' ? $_GET : $_POST;
- // reset ($cgi);
foreach ($cgi as $key => $val) {
if ($key != "order" && $key != "sort" && $key != "q") {
$query_string .= "&" . $key . "=" . $val;
diff --git a/modules/forum.module b/modules/forum.module
index 35f4b8e2b..6378e3e34 100644
--- a/modules/forum.module
+++ b/modules/forum.module
@@ -82,9 +82,9 @@ function forum_block($op = "list", $delta = 0) {
}
else {
if (user_access("access content")) {
- $content = node_title_list(db_query_range("SELECT n.nid, n.title, u.uid, u.name, GREATEST(n.created, MAX(c.timestamp)) AS sort FROM {node} n INNER JOIN {forum} f ON n.nid = f.nid INNER JOIN {comments} c ON n.nid = c.nid LEFT JOIN {users} u ON n.uid = u.uid WHERE n.type = 'forum' AND n.nid = f.nid AND n.status = 1 GROUP BY n.nid, n.title, n.created, u.uid, u.name ORDER BY sort DESC", 0, variable_get("forum_block_num", "5")), t("Active forum topics:"));
+ $content = node_title_list(db_query_range("SELECT n.nid, n.title, GREATEST(n.created, MAX(c.timestamp)) AS sort FROM {node} n LEFT JOIN {comments} c ON n.nid = c.nid WHERE n.type = 'forum' AND n.status = 1 GROUP BY n.nid, n.title, n.created ORDER BY sort DESC", 0, variable_get("forum_block_num", "5")), t("Active forum topics:"));
- $content .= node_title_list(db_query_range("SELECT n.nid, n.title, u.uid, u.name FROM {node} n INNER JOIN {forum} f ON n.nid = f.nid LEFT JOIN {users} u ON n.uid = u.uid WHERE n.type = 'forum' ORDER BY n.nid DESC", 0, variable_get("forum_block_num", "5")), t("New forum topics:"));
+ $content .= node_title_list(db_query_range("SELECT nid, title FROM {node} WHERE type = 'forum' ORDER BY nid DESC", 0, variable_get("forum_block_num", "5")), t("New forum topics:"));
if ($content) {
$content .= "<div class=\"more-link\">". l(t("more"), "forum", array("title" => t("Read the latest forum topics."))) ."</div>";
diff --git a/modules/forum/forum.module b/modules/forum/forum.module
index 35f4b8e2b..6378e3e34 100644
--- a/modules/forum/forum.module
+++ b/modules/forum/forum.module
@@ -82,9 +82,9 @@ function forum_block($op = "list", $delta = 0) {
}
else {
if (user_access("access content")) {
- $content = node_title_list(db_query_range("SELECT n.nid, n.title, u.uid, u.name, GREATEST(n.created, MAX(c.timestamp)) AS sort FROM {node} n INNER JOIN {forum} f ON n.nid = f.nid INNER JOIN {comments} c ON n.nid = c.nid LEFT JOIN {users} u ON n.uid = u.uid WHERE n.type = 'forum' AND n.nid = f.nid AND n.status = 1 GROUP BY n.nid, n.title, n.created, u.uid, u.name ORDER BY sort DESC", 0, variable_get("forum_block_num", "5")), t("Active forum topics:"));
+ $content = node_title_list(db_query_range("SELECT n.nid, n.title, GREATEST(n.created, MAX(c.timestamp)) AS sort FROM {node} n LEFT JOIN {comments} c ON n.nid = c.nid WHERE n.type = 'forum' AND n.status = 1 GROUP BY n.nid, n.title, n.created ORDER BY sort DESC", 0, variable_get("forum_block_num", "5")), t("Active forum topics:"));
- $content .= node_title_list(db_query_range("SELECT n.nid, n.title, u.uid, u.name FROM {node} n INNER JOIN {forum} f ON n.nid = f.nid LEFT JOIN {users} u ON n.uid = u.uid WHERE n.type = 'forum' ORDER BY n.nid DESC", 0, variable_get("forum_block_num", "5")), t("New forum topics:"));
+ $content .= node_title_list(db_query_range("SELECT nid, title FROM {node} WHERE type = 'forum' ORDER BY nid DESC", 0, variable_get("forum_block_num", "5")), t("New forum topics:"));
if ($content) {
$content .= "<div class=\"more-link\">". l(t("more"), "forum", array("title" => t("Read the latest forum topics."))) ."</div>";
diff --git a/update.php b/update.php
index 1b7a72325..2ef151b6b 100644
--- a/update.php
+++ b/update.php
@@ -42,7 +42,8 @@ $mysql_updates = array(
"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-20" => "update_61",
+ "2003-08-27" => "update_62"
);
function update_32() {
@@ -349,6 +350,21 @@ function update_61() {
update_sql("ALTER TABLE {users} DROP sid;");
}
+function update_62() {
+ 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 DROP INDEX type");
+
+ 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++;
@@ -378,9 +394,6 @@ function update_sql($sql) {
}
else {
print "<div style=\"color: red;\">FAILED</div>\n";
- if ($edit["bail"]) {
- die("Fatal error. Bailing");
- }
return 0;
}
}
@@ -450,7 +463,6 @@ function update_page() {
// make update form and output it.
$form .= form_select("Perform updates from", "start", (isset($selected) ? $selected : -1), $dates, "This defaults to the first available update since the last update you peformed.");
- $form .= form_select("Stop on errors", "bail", 0, array("Disabled", "Enabled"), "Don't forget to backup your database before performing an update.");
$form .= form_submit("Update");
print update_page_header("Drupal database update");
print form($form);
@@ -465,7 +477,7 @@ function update_info() {
print "<li>Use this script to <b>upgrade an existing Drupal installation</b>. You don't need this script when installing Drupal from scratch.</li>";
print "<li>Before doing anything, backup your database. This process will change your database and its values, and some things might get lost.</li>\n";
print "<li>Don't run this script twice as it may cause problems.</p></li>\n";
- print "<li><a href=\"update.php?op=update\">Upgrade to CVS</a></li>\n";
+ print "<li><a href=\"update.php?op=update\">Upgrade to the latest version.</a></li>\n";
print "<li>Go through the various administration pages to change the existing and new settings to your liking.</li>\n";
print "</ol>";
print update_page_footer();