diff options
author | Dries Buytaert <dries@buytaert.net> | 2001-04-07 20:00:21 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2001-04-07 20:00:21 +0000 |
commit | dae5c2208c936c82b07eea35ce95f0aba03f5413 (patch) | |
tree | ccd754c192de8699baff32966ebd704b3c8d2de4 | |
parent | d7e9ad10279746ca6ca36ce7bda2f293e7474b8d (diff) | |
download | brdo-dae5c2208c936c82b07eea35ce95f0aba03f5413.tar.gz brdo-dae5c2208c936c82b07eea35ce95f0aba03f5413.tar.bz2 |
- improved rating module: it now shows some basic statistics :-)
- updated database files
- removed affialiate-site and drupal-site module: maintain them
by hand through a box for now will you.
-rw-r--r-- | database/database.mysql | 10 | ||||
-rw-r--r-- | includes/database.inc | 13 | ||||
-rw-r--r-- | modules/affiliate-site.module | 106 | ||||
-rw-r--r-- | modules/drupal-site.module | 94 | ||||
-rw-r--r-- | modules/rating.module | 18 | ||||
-rw-r--r-- | modules/watchdog.module | 4 | ||||
-rw-r--r-- | modules/watchdog/watchdog.module | 4 | ||||
-rw-r--r-- | updates/2.00-to-x.xx.sql | 9 |
8 files changed, 38 insertions, 220 deletions
diff --git a/database/database.mysql b/database/database.mysql index e2aed1caf..89f3ac0f7 100644 --- a/database/database.mysql +++ b/database/database.mysql @@ -219,12 +219,20 @@ CREATE TABLE users ( history text NOT NULL, hash varchar(12) DEFAULT '' NOT NULL, timezone varchar(8), - rating decimal(8,4), + rating decimal(8,2), language char(2) DEFAULT '' NOT NULL, access varchar(255) DEFAULT '' NOT NULL, PRIMARY KEY (id) ); +DROP TABLE IF EXISTS rating; +CREATE TABLE rating ( + user int(6) DEFAULT '0' NOT NULL, + new int(6) DEFAULT '0' NOT NULL, + old int(6) DEFAULT '0' NOT NULL, + PRIMARY KEY (user) +); + DROP TABLE IF EXISTS variable; CREATE TABLE variable ( name varchar(32) DEFAULT '' NOT NULL, diff --git a/includes/database.inc b/includes/database.inc index b86ad6dcf..30b1c5a1f 100644 --- a/includes/database.inc +++ b/includes/database.inc @@ -6,16 +6,9 @@ function db_connect($host, $user, $pass, $name) { // NOTE: we are using a persistent connection! } -function db_query($query, $debug = false) { - // perform query: - $qid = mysql_query($query); - - // debug output (if required): - if ($debug) print "<PRE>query: ". htmlspecialchars($query) ."<BR>error message: ". mysql_error() ."</PRE>"; - if (!$qid) watchdog("error", "database: ". mysql_error() ."<BR>query: ". htmlspecialchars($query) .""); - - // return result from query: - return $qid; +function db_query($query) { + if ($result = mysql_query($query)) return $result; + else watchdog("error", "database: ". mysql_error() ."<BR>query: ". htmlspecialchars($query)); } function db_fetch_object($qid) { diff --git a/modules/affiliate-site.module b/modules/affiliate-site.module deleted file mode 100644 index 1f004d11c..000000000 --- a/modules/affiliate-site.module +++ /dev/null @@ -1,106 +0,0 @@ -<?php - -$module = array("help" => "affiliate_help", - "block" => "affiliate_block", - "admin" => "affiliate_admin"); - -function affiliate_help() { - ?> - <P>This is a small module to manage related and/or affiliate sites. The module exports two different blocks with links to the affiliate sites.</P> - <?php -} - -function affiliate_block() { - global $site_url; - - $result = db_query("SELECT * FROM affiliates ORDER BY name"); - - $content .= "<SCRIPT>\n"; - $content .= " <!--//\n"; - $content .= " function gotosite(site) {\n"; - $content .= " if (site != \"\") {\n"; - $content .= " parent.location = site\n"; - $content .= " }\n"; - $content .= " }\n"; - $content .= " //-->\n"; - $content .= "</SCRIPT>\n"; - - $content .= "<CENTER>\n"; - $content .= "<FORM ACTION=\"\" METHOD=\"post\">\n"; - $content .= " <SELECT NAME=\"affiliate\" ONCHANGE=\"gotosite(this.options[this.selectedIndex].value)\">\n"; - $content .= " <OPTION VALUE=\"$site_url\">select a site</OPTION>\n"; - while ($affiliate = db_fetch_object($result)) { - $content .= " <OPTION VALUE=\"$affiliate->link\">$affiliate->name</OPTION>\n"; - } - - $content .= " </SELECT>\n"; - $content .= "</FORM>\n"; - $content .= "</CENTER>\n"; - - $blocks[0]["subject"] = "Affiliate sites"; - $blocks[0]["content"] = $content; - $blocks[0]["info"] = "Affiliate sites (selection)"; - - unset($content); - - $result = db_query("SELECT * FROM affiliates ORDER BY name"); - while ($affiliate = db_fetch_object($result)) { - $content .= "<LI><A HREF=\"$affiliate->link\">$affiliate->name</A></LI>\n"; - } - - $blocks[1]["subject"] = "Affiliate sites"; - $blocks[1]["content"] = $content; - $blocks[1]["info"] = "Affiliate sites (sequential)"; - - return $blocks; -} - -function affiliate_admin_add($name, $url, $contact) { - db_query("INSERT INTO affiliates (name, link, contact) VALUES ('". check_input($name) ."', '". check_input($url) ."', '". check_input($contact) ."')"); -} - -function affiliate_admin_del($id) { - db_query("DELETE FROM affiliates WHERE id = '$id'"); -} - -function affiliate_admin_display() { - $result = db_query("SELECT * FROM affiliates ORDER BY name"); - - $output .= "<FORM ACTION=\"admin.php?mod=affiliate-site\" METHOD=\"post\">\n"; - $output .= "<TABLE BORDER=\"1\" CELLPADDING=\"2\" CELLSPACING=\"2\">\n"; - $output .= " <TR><TH>name</TH><TH>link</TH><TH>contact</TH><TH>operations</TH></TR>\n"; - - while ($affiliate = db_fetch_object($result)) { - $output .= " <TR><TD>". check_output($affiliate->name) ."</TD><TD>". format_url($affiliate->link) ."</TD><TD>". format_email($affiliate->contact) ."</TD><TD ALIGN=\"center\"><A HREF=\"admin.php?mod=affiliate-site&op=delete&id=$affiliate->id\">delete</A></TD></TR>\n"; - } - - $output .= " <TR><TD><INPUT TYPE=\"text\" NAME=\"name\"></TD><TD><INPUT TYPE=\"text\" NAME=\"url\"></TD><TD><INPUT TYPE=\"text\" NAME=\"contact\"></TD><TD><INPUT NAME=\"op\" TYPE=\"submit\" VALUE=\"Add affiliate site\"></TD></TR>\n"; - $output .= "</TABLE>\n"; - $output .= "</FORM>\n"; - - print $output; -} - -function affiliate_admin() { - global $op, $id, $name, $url, $contact; - - print "<SMALL><A HREF=\"admin.php?mod=affiliate-site\">overview</A> | <A HREF=\"admin.php?mod=affiliate-site&op=help\">help</A></SMALL><HR>\n"; - - switch($op) { - case "Add affiliate site": - affiliate_admin_add($name, $url, $contact); - affiliate_admin_display(); - break; - case "delete": - affiliate_admin_del($id); - affiliate_admin_display(); - break; - case "help": - affiliate_help(); - break; - default: - affiliate_admin_display(); - } -} - -?>
\ No newline at end of file diff --git a/modules/drupal-site.module b/modules/drupal-site.module deleted file mode 100644 index d4742b681..000000000 --- a/modules/drupal-site.module +++ /dev/null @@ -1,94 +0,0 @@ -<?php - -$module = array("block" => "drupal_block", - "admin" => "drupal_admin"); - -function drupal_block() { - global $site_url; - - $result = db_query("SELECT * FROM drupals ORDER BY name"); - - $content .= "<SCRIPT>\n"; - $content .= " <!--//\n"; - $content .= " function gotosite(site) {\n"; - $content .= " if (site != \"\") {\n"; - $content .= " parent.location = site\n"; - $content .= " }\n"; - $content .= " }\n"; - $content .= " //-->\n"; - $content .= "</SCRIPT>\n"; - - $content .= "<CENTER>\n"; - $content .= "<FORM ACTION=\"\" METHOD=\"post\">\n"; - $content .= " <SELECT NAME=\"drupal\" ONCHANGE=\"gotosite(this.options[this.selectedIndex].value)\">\n"; - $content .= " <OPTION VALUE=\"$site_url\">select a site</OPTION>\n"; - while ($drupal = db_fetch_object($result)) { - $content .= " <OPTION VALUE=\"$drupal->link\">$drupal->name</OPTION>\n"; - } - - $content .= " </SELECT>\n"; - $content .= "</FORM>\n"; - $content .= "</CENTER>\n"; - - $blocks[0]["subject"] = "Drupal sites"; - $blocks[0]["content"] = $content; - $blocks[0]["info"] = "Drupal sites (selection)"; - - unset($content); - - $result = db_query("SELECT * FROM drupals ORDER BY name"); - while ($drupal = db_fetch_object($result)) { - $content .= "<LI><A HREF=\"$drupal->link\">$drupal->name</A></LI>\n"; - } - - $blocks[1]["subject"] = "Drupal sites"; - $blocks[1]["content"] = $content; - $blocks[1]["info"] = "Drupal sites (sequential)"; - - return $blocks; -} - -function drupal_admin_add($name, $url, $contact) { - db_query("INSERT INTO drupals (name, link, contact) VALUES ('". check_input($name) ."', '". check_input($url) ."', '". check_input($contact) ."')"); -} - -function drupal_admin_del($id) { - db_query("DELETE FROM drupals WHERE id = '$id'"); -} - -function drupal_admin_display() { - $result = db_query("SELECT * FROM drupals ORDER BY name"); - - $output .= "<FORM ACTION=\"admin.php?mod=drupal-site\" METHOD=\"post\">\n"; - $output .= "<TABLE BORDER=\"1\" CELLPADDING=\"2\" CELLSPACING=\"2\">\n"; - $output .= " <TR><TH>name</TH><TH>link</TH><TH>contact</TH><TH>operations</TH></TR>\n"; - - while ($drupal = db_fetch_object($result)) { - $output .= " <TR><TD>$drupal->name</TD><TD>". format_url($drupal->link) ."</TD><TD>". format_email($drupal->contact) ."</TD><TD ALIGN=\"center\"><A HREF=\"admin.php?mod=drupal-site&op=delete&id=$drupal->id\">delete</A></TD></TR>\n"; - } - - $output .= " <TR><TD><INPUT TYPE=\"text\" NAME=\"name\"></TD><TD><INPUT TYPE=\"text\" NAME=\"url\"></TD><TD><INPUT TYPE=\"text\" NAME=\"contact\"></TD><TD><INPUT NAME=\"op\" TYPE=\"submit\" VALUE=\"Add drupal site\"></TD></TR>\n"; - $output .= "</TABLE>\n"; - $output .= "</FORM>\n"; - - print $output; -} - -function drupal_admin() { - global $op, $id, $name, $url, $contact; - - switch($op) { - case "Add drupal site": - drupal_admin_add($name, $url, $contact); - drupal_admin_display(); - break; - case "delete": - drupal_admin_del($id); - drupal_admin_display(); - break; - default: - drupal_admin_display(); - } -} - -?>
\ No newline at end of file diff --git a/modules/rating.module b/modules/rating.module index 0330422f4..c5e665592 100644 --- a/modules/rating.module +++ b/modules/rating.module @@ -6,10 +6,17 @@ $module = array("cron" => "rating_cron", "block" => "rating_block"); function rating_cron() { - $result = db_query("SELECT id FROM users"); - - while ($account = db_fetch_object($result)) { + $r1 = db_query("SELECT id FROM users ORDER BY rating DESC"); + while ($account = db_fetch_object($r1)) { db_query("UPDATE users SET rating = '". user_gravity($account->id) ."' WHERE id = '$account->id'"); + $rating[$account->id] = ++$i; + } + + db_query("DELETE FROM rating"); + + $r2 = db_query("SELECT id FROM users ORDER BY rating DESC"); + while ($account = db_fetch_object($r2)) { + db_query("INSERT INTO rating (user, new, old) VALUES ('$account->id', '". ++$j ."', '". $rating[$account->id] ."')"); } } @@ -20,11 +27,12 @@ function rating_help() { } function rating_list($limit) { - $result = db_query("SELECT userid, rating FROM users ORDER BY rating DESC LIMIT $limit"); + $result = db_query("SELECT u.userid, u.rating, r.* FROM users u LEFT JOIN rating r ON u.id = r.user ORDER BY u.rating DESC LIMIT $limit"); $output .= "<TABLE CELLPADDING=\"1\" CELLSPACING=\"1\">\n"; while ($account = db_fetch_object($result)) { - $output .= "<TR><TD ALIGN=\"right\">". ++$i ."</TD><TD>". format_username($account->userid) ."</TD><TD>". check_output($account->rating) ."</TD></TR>"; + $ranking = $account->old - $account->new; + $output .= "<TR><TD ALIGN=\"right\">". ++$i ."</TD><TD>". format_username($account->userid) ."</TD><TD ALIGN=\"right\">". check_output($account->rating) ."</TD><TD>(". ($ranking < 0 ? "" : "+") ."$ranking)</TD></TR>"; } $output .= "</TABLE>\n"; return $output; diff --git a/modules/watchdog.module b/modules/watchdog.module index 18279db1b..23e803e62 100644 --- a/modules/watchdog.module +++ b/modules/watchdog.module @@ -15,10 +15,10 @@ function watchdog_cron() { db_query("DELETE FROM watchdog WHERE ". time() ." - timestamp > ". variable_get(watchdog_clear, "302400")); } -function watchdog_overview($order = "date") { +function watchdog_overview() { $colors = array(message => "#FFFFFF", special => "#836FFF", warning => "#FFAA22", error => "#EE2C2C"); - $result = db_query("SELECT w.*, u.userid FROM watchdog w LEFT JOIN users u ON w.user = u.id"); + $result = db_query("SELECT w.*, u.userid FROM watchdog w LEFT JOIN users u ON w.user = u.id ORDER BY timestamp DESC LIMIT 1000"); $output .= "<TABLE BORDER=\"1\" CELLPADDING=\"2\" CELLSPACING=\"2\">\n"; $output .= " <TR><TH>date</TH><TH>type</TH><TH>message</TH><TH>user</TH><TH>operations</TH></TR>\n"; diff --git a/modules/watchdog/watchdog.module b/modules/watchdog/watchdog.module index 18279db1b..23e803e62 100644 --- a/modules/watchdog/watchdog.module +++ b/modules/watchdog/watchdog.module @@ -15,10 +15,10 @@ function watchdog_cron() { db_query("DELETE FROM watchdog WHERE ". time() ." - timestamp > ". variable_get(watchdog_clear, "302400")); } -function watchdog_overview($order = "date") { +function watchdog_overview() { $colors = array(message => "#FFFFFF", special => "#836FFF", warning => "#FFAA22", error => "#EE2C2C"); - $result = db_query("SELECT w.*, u.userid FROM watchdog w LEFT JOIN users u ON w.user = u.id"); + $result = db_query("SELECT w.*, u.userid FROM watchdog w LEFT JOIN users u ON w.user = u.id ORDER BY timestamp DESC LIMIT 1000"); $output .= "<TABLE BORDER=\"1\" CELLPADDING=\"2\" CELLSPACING=\"2\">\n"; $output .= " <TR><TH>date</TH><TH>type</TH><TH>message</TH><TH>user</TH><TH>operations</TH></TR>\n"; diff --git a/updates/2.00-to-x.xx.sql b/updates/2.00-to-x.xx.sql index 247aae9cf..314775494 100644 --- a/updates/2.00-to-x.xx.sql +++ b/updates/2.00-to-x.xx.sql @@ -13,6 +13,13 @@ CREATE TABLE variable ( PRIMARY KEY (name) ); +CREATE TABLE rating ( + user int(6) DEFAULT '0' NOT NULL, + new int(6) DEFAULT '0' NOT NULL, + old int(6) DEFAULT '0' NOT NULL, + PRIMARY KEY (user) +); + CREATE TABLE watchdog ( id int(5) DEFAULT '0' NOT NULL auto_increment, user int(6) DEFAULT '0' NOT NULL, @@ -25,6 +32,8 @@ CREATE TABLE watchdog ( PRIMARY KEY (id) ); +ALTER TABLE users CHANGE rating rating decimal(8,2); + # 01/04/2001: CREATE TABLE access ( |