diff options
author | Dries Buytaert <dries@buytaert.net> | 2000-06-13 09:42:58 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2000-06-13 09:42:58 +0000 |
commit | 1887ba80187318c51d32553bbfaec2186d15e6a6 (patch) | |
tree | c8d989dde701f6e046f9f4819baae45416a39227 /submission.inc | |
parent | 00ff842a08f1e214c6dc7945093d61f595408e57 (diff) | |
download | brdo-1887ba80187318c51d32553bbfaec2186d15e6a6.tar.gz brdo-1887ba80187318c51d32553bbfaec2186d15e6a6.tar.bz2 |
Hoeray! I have a first core version of submission moderation up and
running. This means people can submit stories, and moderators can
moderate stories. When a submission reaches a certain positive
threshold (currently set to 2) the submission becomes a story and up
it goes. If a submission reaches a certain negative threshold
(currently set to -2) the submission is dumped.
The fact this is all done by our visitors (without our intervention)
makes it truly spiffy imho. The website can live a life on it's own,
fed by the visitors.
Beware, a lot of work need to be done though ... it's just a first
basic implementation with the core functionality. There are quite
a lot of things that I'll need to change, extend and improve. But
comments, suggestions and ideas are - as always - welcomed.
Please read this log message carefully! It features quite a lot of
important information.
To test the moderation, log in, select theme 'Dries' (the other themes
need a small update) and head by clicking the one and only 'submission
moderation' link. Don't be afraid to submit lame/funny/useless
stories for testing purpose ... as soon we go public, we'll wipe out
the story database. ;-)
WHAT'S NEW?
-----------
* Added 2 new operations to user.class.php to set and retrieve the
user's "history". Very evil but required to avoid people voting
twice.
* Moved dbsave() from account.php to functions.php. In addition, I
added a new function to user.class.php called `save()' that ...
well, saves the object back to the database. It's (IMHO) a better
approach compared to dbsave(): it keeps things organized. ;-)
BUGFIXES:
---------
* Fixed a (heavy) memory leak in the constructor of user.class.php:
mysql_fetch_array() returns an _associative_ array which made the
constructor `pollute' the object with a lot of useless variables.
* Fixed the slash-problem on the account pages. :-)
* Fixed UnConeD's theme glitch, alas the warning.
* Fixed the e-mail address not showing in the confirmation email
(upon registration).
* Fixed the typical quote and backslash problems in submit.php.
* submit.php now uses the database abstraction layer.
IMPORTANT:
----------
* You can check the new submission system at:
http://beta.drop.org/submission.php
or by following the `submission moderation' link from my theme.
* UnConeD, Jeroen: you'll need to update your themes to take
advantage of the new function: displayAccount(). This function
will display the `submission moderation' link when a user is
logged on.
* Natrak: you might want to apply the patches in user.class.php
on the other sites using the same user-system.
Diffstat (limited to 'submission.inc')
-rw-r--r-- | submission.inc | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/submission.inc b/submission.inc new file mode 100644 index 000000000..2a8989b98 --- /dev/null +++ b/submission.inc @@ -0,0 +1,44 @@ +<? + +function submission_count() { + $result = db_query("SELECT COUNT(id) FROM submissions"); + return ($result) ? mysql_result($result, 0) : 0; +} + +function submission_score($id) { + $result = db_query("SELECT score FROM submissions WHERE id = $id"); + return ($result) ? mysql_result($result, 0) : 0; +} + +function submission_vote($id, $vote) { + global $user; + + include "config.inc"; + + if (!$user->getHistory("s$id")) { + ### Update submission table: + db_query("UPDATE submissions SET score = score $vote, votes = votes + 1 WHERE id = $id"); + + ### Update user record: + $user->setHistory("s$id", "$vote"); // s = submission + $user->save(); + + ### Update story and submission table (if required): + $result = db_query("SELECT * FROM submissions WHERE id = $id"); + if ($submission = db_fetch_object($result)) { + if ($submission->score >= $submission_post_threshold) { + ### Hide submission from submission table: + db_query("UPDATE submissions SET status = 0 WHERE id = $id"); + + ### Copy sumbission to news table: + db_query("INSERT INTO stories (aid, subject, time, abstract, article, category, informant) VALUES ('$submission->uid', '". addslashes($submission->subject) ."', '$submission->timestamp', '". addslashes($submission->abstract) ."', '". addslashes($submission->article) ."', '". addslashes($submission->category) ."', '". addslashes($submission->uname) ."')"); + } + if ($submission->score <= $submission_dump_threshold) { + ### Hide submission from submission table: + db_query("UPDATE submissions SET status = 0 WHERE id = $id"); + } + } + } +} + +?>
\ No newline at end of file |