* _Major_ update of the comments and moderation system: it's a lot more
stream-lined and more compact. There are a few parts I like to optimize prior to heading towards comment moderation. Please test, report bugs and update the footer()-part of your themes a bit (see my theme)!!! -- Dries3-00
parent
14b12b3a6a
commit
4e132c9fd5
21
article.php
21
article.php
|
@ -1,21 +0,0 @@
|
|||
<?
|
||||
|
||||
include "config.inc";
|
||||
include "functions.inc";
|
||||
include "theme.inc";
|
||||
|
||||
if ($save) {
|
||||
db_query("UPDATE users SET umode='$mode', uorder='$order', thold='$thold' where id='$user->id'");
|
||||
$user->rehash();
|
||||
}
|
||||
|
||||
if ($op == "reply") Header("Location: comments.php?op=reply&pid=0&sid=$sid&mode=$mode&order=$order&thold=$thold");
|
||||
|
||||
$result = db_query("SELECT stories.*, users.userid FROM stories LEFT JOIN users ON stories.author = users.id WHERE stories.status = 2 AND stories.id = $id");
|
||||
$story = db_fetch_object($result);
|
||||
|
||||
$theme->header();
|
||||
$theme->article($story, "[ <A HREF=\"\"><FONT COLOR=\"$theme->hlcolor2\">home</FONT></A> | <A HREF=\"comments.php?op=reply&pid=0&sid=$story->id\"><FONT COLOR=\"$theme->hlcolor2\">add a comment</FONT></A> ]");
|
||||
include "comments.php";
|
||||
$theme->footer();
|
||||
?>
|
302
comments.php
302
comments.php
|
@ -1,302 +0,0 @@
|
|||
<?
|
||||
|
||||
function comments_kids ($cid, $mode, $order = 0, $thold = 0, $level = 0, $dummy = 0) {
|
||||
global $user, $theme;
|
||||
|
||||
include "config.inc";
|
||||
$comments = 0;
|
||||
|
||||
$result = db_query("SELECT c.*, u.* FROM comments c LEFT JOIN users u ON c.author = u.id WHERE c.pid = $cid ORDER BY c.timestamp, c.cid");
|
||||
|
||||
if ($mode == "nested") {
|
||||
while ($comment = db_fetch_object($result)) {
|
||||
if ($$comment->score >= $thold) {
|
||||
if ($level && !$comments) print "<UL>";
|
||||
$comments++;
|
||||
|
||||
$link = "<A HREF=\"comments.php?op=reply&pid=$comment->cid&sid=$comment->sid&mode=$mode&order=$order&thold=$thold\"><FONT COLOR=\"$theme->hlcolor2\">reply to this comment</FONT></A>";
|
||||
$theme->comment($comment->userid, $comment->subject, $comment->comment, $comment->timestamp, $comment->url, $comment->femail, $comment->score, $comment->cid, $link);
|
||||
|
||||
comments_kids($comment->cid, $mode, $order, $thold, $level + 1, $dummy + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif ($mode == "flat") {
|
||||
while ($comment = db_fetch_object($result)) {
|
||||
if ($comment->score >= $thold) {
|
||||
$link = "<A HREF=\"comments.php?op=reply&pid=$comment->cid&sid=$comment->sid&mode=$mode&order=$order&thold=$thold\"><FONT COLOR=\"$theme->hlcolor2\">reply to this comment</FONT></A>";
|
||||
$theme->comment($comment->userid, $comment->subject, $comment->comment, $comment->timestamp, $comment->url, $comment->femail, $comment->score, $comment->cid, $link);
|
||||
}
|
||||
comments_kids($comment->cid, $mode, $order, $thold);
|
||||
}
|
||||
}
|
||||
elseif ($mode == "disabled") {
|
||||
// do nothing
|
||||
}
|
||||
else {
|
||||
print "ERROR: we should not get here!";
|
||||
}
|
||||
|
||||
if ($level && $comments) {
|
||||
print "</UL>";
|
||||
}
|
||||
}
|
||||
|
||||
function comments_childs($cid, $mode, $order, $thold, $level = 0, $thread) {
|
||||
global $theme, $user;
|
||||
|
||||
### Perform SQL query:
|
||||
$result = db_query("SELECT c.*, u.* FROM comments c LEFT JOIN users u ON c.author = u.id WHERE c.pid = $cid ORDER BY c.timestamp, c.cid");
|
||||
|
||||
if ($level == 0) $thread = "";
|
||||
$comments = 0;
|
||||
|
||||
while ($comment = db_fetch_object($result)) {
|
||||
if ($level && !$comments) {
|
||||
$thread .= "<UL>";
|
||||
}
|
||||
|
||||
$comments++;
|
||||
|
||||
### Compose link:
|
||||
$thread .= "<LI><A HREF=\"comments.php?op=show&cid=$comment->cid&pid=$comment->pid&sid=$comment->sid";
|
||||
$thread .= ($mode) ? "&mode=$mode" : "&mode=threaded";
|
||||
$thread .= ($order) ? "&order=$order" : "&order=0";
|
||||
$thread .= ($thold) ? "&thold=$thold" : "&thold=0";
|
||||
$thread .= "\">$comment->subject</A> by $comment->userid <SMALL>(". date("D, M d, Y - H:i:s", $comment->timestamp) .")<SMALL></LI>";
|
||||
|
||||
### Recursive:
|
||||
comments_childs($comment->cid, $mode, $order, $thold, $level + 1, &$thread);
|
||||
}
|
||||
|
||||
if ($level && $comments) {
|
||||
$thread .= "</UL>";
|
||||
}
|
||||
|
||||
return $thread;
|
||||
}
|
||||
|
||||
function comments_display ($sid = 0, $pid = 0, $cid = 0, $mode = "threaded", $order = 0, $thold = 0, $level = 0, $nokids = 0) {
|
||||
global $user, $theme;
|
||||
|
||||
### Display `comment control'-box:
|
||||
$theme->commentControl($sid, $title, $thold, $mode, $order);
|
||||
|
||||
### Compose query:
|
||||
$query = "SELECT c.*, u.* FROM comments c LEFT JOIN users u ON c.author = u.id WHERE c.sid = $sid AND c.pid = $pid";
|
||||
if ($mode == 'threaded' || mode == 'nested') {
|
||||
if ($thold != "") $query .= " AND score >= $thold";
|
||||
else $query .= " AND score >= 0";
|
||||
}
|
||||
if ($order == 1) $query .= " ORDER BY timestamp DESC";
|
||||
if ($order == 2) $query .= " ORDER BY score DESC";
|
||||
$result = db_query("$query");
|
||||
|
||||
### Display the comments:
|
||||
while ($comment = db_fetch_object($result)) {
|
||||
### Dynamically compose the `reply'-link:
|
||||
if ($pid != 0) {
|
||||
list($pid) = mysql_fetch_row(mysql_query("SELECT pid FROM comments WHERE cid = $comment->pid"));
|
||||
$link = "<A HREF=\"comments.php?op=show&pid=$pid&sid=$comment->sid&mode=$mode&order=$order&thold=$thold\"><FONT COLOR=\"$theme->hlcolor2\">return to parent</FONT></A> | <A HREF=\"comments.php?op=reply&pid=$comment->cid&sid=$comment->sid&mode=$mode&order=$order&thold=$thold\"><FONT COLOR=\"$theme->hlcolor2\">reply to this comment</FONT></A>";
|
||||
}
|
||||
else {
|
||||
$link = "<A HREF=\"comments.php?op=reply&pid=$comment->cid&sid=$comment->sid&mode=$mode&order=$order&thold=$thold\"><FONT COLOR=\"$theme->hlcolor2\">reply to this comment</FONT></A> ";
|
||||
}
|
||||
|
||||
### Display the comments:
|
||||
if ($mode == "threaded") {
|
||||
$thread = comments_childs($comment->cid, $mode, $order, $thold);
|
||||
$theme->comment($comment->userid, $comment->subject, $comment->comment, $comment->timestamp, $comment->url, $comment->femail, $comment->score, $comment->cid, $link, $thread);
|
||||
}
|
||||
else {
|
||||
$theme->comment($comment->userid, $comment->subject, $comment->comment, $comment->timestamp, $comment->url, $comment->femail, $comment->score, $comment->cid, $link);
|
||||
comments_kids($comment->cid, $mode, $order, $thold, $level);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function comments_reply($pid, $sid, $mode, $order, $thold) {
|
||||
global $user, $theme;
|
||||
|
||||
### Extract parent-information/data:
|
||||
if ($pid) {
|
||||
$item = db_fetch_object(db_query("SELECT comments.*, users.userid FROM comments LEFT JOIN users ON comments.author = users.id WHERE comments.cid = $pid"));
|
||||
$theme->comment($item->userid, $item->subject, $item->comment, $item->timestamp, $item->url, $item->femail, $item->score, $item->cid, "reply to this comment");
|
||||
}
|
||||
else {
|
||||
$item = db_fetch_object(db_query("SELECT stories.*, users.userid FROM stories LEFT JOIN users ON stories.author = users.id WHERE stories.status = 2 AND stories.id = $sid"));
|
||||
$theme->article($item, "");
|
||||
}
|
||||
|
||||
### Build reply form:
|
||||
$output .= "<FORM ACTION=\"comments.php\" METHOD=\"post\">\n";
|
||||
|
||||
### Name field:
|
||||
if ($user) {
|
||||
$output .= "<P>\n";
|
||||
$output .= " <B>Your name:</B><BR>\n";
|
||||
$output .= " <A HREF=\"account.php\">$user->userid</A> <FONT SIZE=\"2\">[ <A HREF=\"account.php?op=logout\">logout</A> ]</FONT>\n";
|
||||
$output .= "</P>\n";
|
||||
}
|
||||
else {
|
||||
$output .= "<P>\n";
|
||||
$output .= " <B>Your name:</B><BR>\n";
|
||||
$output .= " $anonymous\n";
|
||||
$output .= "</P>\n";
|
||||
}
|
||||
|
||||
### Subject field:
|
||||
$output .= "<P>\n";
|
||||
$output .= " <B>Subject:</B><BR>\n";
|
||||
if (!eregi("Re:",$item->subject)) $item->subject = "Re: $item->subject";
|
||||
// Only one 'Re:' will just do fine. ;)
|
||||
$output .= " <INPUT TYPE=\"text\" NAME=\"subject\" SIZE=\"50\" MAXLENGTH=\"60\" VALUE=\"$item->subject\">\n";
|
||||
$output .= "</P>\n";
|
||||
|
||||
### Comment field:
|
||||
$output .= "<P>\n";
|
||||
$output .= " <B>Comment:</B><BR>\n";
|
||||
$output .= " <TEXTAREA WRAP=\"virtual\" COLS=\"50\" ROWS=\"10\" NAME=\"comment\">$user->signature</TEXTAREA><BR>\n";
|
||||
$output .= "</P>\n";
|
||||
|
||||
### Hidden fields:
|
||||
$output .= "<INPUT TYPE=\"hidden\" NAME=\"pid\" VALUE=\"$pid\">\n";
|
||||
$output .= "<INPUT TYPE=\"hidden\" NAME=\"sid\" VALUE=\"$sid\">\n";
|
||||
$output .= "<INPUT TYPE=\"hidden\" NAME=\"mode\" VALUE=\"$mode\">\n";
|
||||
$output .= "<INPUT TYPE=\"hidden\" NAME=\"order\" VALUE=\"$order\">\n";
|
||||
$output .= "<INPUT TYPE=\"hidden\" NAME=\"thold\" VALUE=\"$thold\">\n";
|
||||
|
||||
### Preview button:
|
||||
$output .= "<INPUT TYPE=\"submit\" NAME=\"op\" VALUE=\"Preview comment\"> (You must preview at least once before you can submit.)\n";
|
||||
$output .= "</FORM>\n";
|
||||
|
||||
$theme->box("Reply", $output);
|
||||
}
|
||||
|
||||
function comment_preview($pid, $sid, $subject, $comment, $mode, $order, $thold) {
|
||||
global $user, $theme;
|
||||
|
||||
### Preview comment:
|
||||
if ($user) $theme->comment("", $subject, $comment, time(), "", "", "na", "", "reply to this comment");
|
||||
else $theme->comment($user->userid, $subject, $comment, time(), $user->url, $user->femail, "na", "", "reply to this comment");
|
||||
|
||||
### Build reply form:
|
||||
$output .= "<FORM ACTION=\"comments.php\" METHOD=\"post\">\n";
|
||||
|
||||
### Name field:
|
||||
if ($user) {
|
||||
$output .= "<P>\n";
|
||||
$output .= " <B>Your name:</B><BR>\n";
|
||||
$output .= " <A HREF=\"account.php\">$user->userid</A> <FONT SIZE=\"2\">[ <A HREF=\"account.php?op=logout\">logout</A> ]</FONT>\n";
|
||||
$output .= "</P>\n";
|
||||
}
|
||||
else {
|
||||
$output .= "<P>\n";
|
||||
$output .= " <B>Your name:</B><BR>\n";
|
||||
$output .= " $anonymous\n";
|
||||
$output .= "</P>\n";
|
||||
}
|
||||
|
||||
### Subject field:
|
||||
$output .= "<P>\n";
|
||||
$output .= " <B>Subject:</B><BR>\n";
|
||||
$output .= " <INPUT TYPE=\"text\" NAME=\"subject\" SIZE=\"50\" MAXLENGTH=\"60\" VALUE=\"$subject\">\n";
|
||||
$output .= "</P>\n";
|
||||
|
||||
### Comment field:
|
||||
$output .= "<P>\n";
|
||||
$output .= " <B>Comment:</B><BR>\n";
|
||||
$output .= " <TEXTAREA WRAP=\"virtual\" COLS=\"50\" ROWS=\"10\" NAME=\"comment\">$comment</TEXTAREA><BR>\n";
|
||||
$output .= "</P>\n";
|
||||
|
||||
### Hidden fields:
|
||||
$output .= "<INPUT TYPE=\"hidden\" NAME=\"pid\" VALUE=\"$pid\">\n";
|
||||
$output .= "<INPUT TYPE=\"hidden\" NAME=\"sid\" VALUE=\"$sid\">\n";
|
||||
$output .= "<INPUT TYPE=\"hidden\" NAME=\"mode\" VALUE=\"$mode\">\n";
|
||||
$output .= "<INPUT TYPE=\"hidden\" NAME=\"order\" VALUE=\"$order\">\n";
|
||||
$output .= "<INPUT TYPE=\"hidden\" NAME=\"thold\" VALUE=\"$thold\">\n";
|
||||
|
||||
### Preview and submit buttons:
|
||||
if (empty($subject)) {
|
||||
$output .= "<P>\n";
|
||||
$output .= " <FONT COLOR=\"red\"><B>Warning:</B></FONT> you did not supply a <U>subject</U>.\n";
|
||||
$outout .= "</P>\n";
|
||||
$output .= "<P>\n";
|
||||
$output .= " <INPUT TYPE=\"submit\" NAME=\"op\" VALUE=\"Preview comment\">\n";
|
||||
$output .= "</P>\n";
|
||||
}
|
||||
else {
|
||||
$output .= "<INPUT TYPE=\"submit\" NAME=\"op\" VALUE=\"Preview comment\">\n";
|
||||
$output .= "<INPUT TYPE=\"submit\" NAME=\"op\" VALUE=\"Post comment\">\n";
|
||||
$output .= "</FORM>\n";
|
||||
}
|
||||
|
||||
$theme->box("Reply", $output);
|
||||
}
|
||||
|
||||
function comment_post($pid, $sid, $subject, $comment, $mode, $order, $thold) {
|
||||
global $user, $theme;
|
||||
|
||||
### Check for fake threads:
|
||||
$fake = db_result(db_query("SELECT COUNT(*) FROM stories WHERE id = $sid"), 0);
|
||||
|
||||
### Check for duplicate comments:
|
||||
$duplicate = db_result(db_query("SELECT COUNT(*) FROM comments WHERE pid = '$pid' AND sid = '$sid' AND subject = '". addslashes($subject) ."' AND comment = '". addslashes($comment) ."'"), 0);
|
||||
|
||||
if ($fake != 1) {
|
||||
$theme->box("fake comment", "fake comment: $fake");
|
||||
}
|
||||
elseif ($duplicate != 0) {
|
||||
$theme->box("duplicate comment", "duplicate comment: $duplicate");
|
||||
}
|
||||
else {
|
||||
if ($user) {
|
||||
### Add comment to database:
|
||||
db_query("INSERT INTO comments (pid, sid, author, subject, comment, hostname, timestamp) VALUES ($pid, $sid, $user->id, '". addslashes($subject) ."', '". addslashes($comment) ."', '". getenv("REMOTE_ADDR") ."', '". time() ."')");
|
||||
|
||||
### Compose header:
|
||||
$header = "article.php?id=$sid";
|
||||
$header .= ($mode) ? "&mode=$mode" : "&mode=threaded";
|
||||
$header .= ($order) ? "&order=$order" : "&order=0";
|
||||
$header .= ($thold) ? "&thold=$thold" : "&thold=0";
|
||||
}
|
||||
else {
|
||||
### Add comment to database:
|
||||
db_query("INSERT INTO comments (pid, sid, subject, comment, hostname, timestamp) VALUES ($pid, $sid, '". addslashes($subject) ."', '". addslashes($comment) ."', '". getenv("REMOTE_ADDR") ."', '". time() ."')");
|
||||
|
||||
### Compose header:
|
||||
$header .= "article.php?id=$sid&mode=threaded&order=1&thold=0";
|
||||
}
|
||||
header("Location: $header");
|
||||
}
|
||||
}
|
||||
|
||||
if (strstr($PHP_SELF, "comments.php")) {
|
||||
include "theme.inc";
|
||||
include "functions.inc";
|
||||
}
|
||||
|
||||
switch($op) {
|
||||
case "Preview comment":
|
||||
$theme->header();
|
||||
comment_preview($pid, $sid, $subject, $comment, $mode, $order, $thold);
|
||||
$theme->footer();
|
||||
break;
|
||||
case "Post comment":
|
||||
comment_post($pid, $sid, $subject, $comment, $mode, $order, $thold);
|
||||
break;
|
||||
case "reply":
|
||||
$theme->header();
|
||||
comments_reply($pid, $sid, $mode, $order, $thold);
|
||||
$theme->footer();
|
||||
break;
|
||||
case "show":
|
||||
$theme->header();
|
||||
comments_display($sid, $pid, $cid, $mode, $order, $thold);
|
||||
$theme->footer();
|
||||
break;
|
||||
default:
|
||||
comments_display($id, 0, 0, $mode, $order, $thold);
|
||||
}
|
||||
|
||||
?>
|
|
@ -7,10 +7,6 @@
|
|||
* just adjust the handlers to your needs.
|
||||
*/
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// NOTE: these functions are under construction and in no way finilized! //
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
function db_connect() {
|
||||
include "config.inc";
|
||||
mysql_pconnect($dbhost, $dbuname, $dbpass) or die(mysql_Error());
|
||||
|
|
|
@ -30,13 +30,13 @@ function morelink_bytes($theme, $story) {
|
|||
### Compose more-link:
|
||||
$morelink = "[ ";
|
||||
if ($story->article) {
|
||||
$morelink .= "<A HREF=\"article.php?id=$story->id";
|
||||
$morelink .= "<A HREF=\"discussion.php?id=$story->id";
|
||||
$morelink .= ($user->umode) ? "&mode=$user->umode" : "&mode=threaded";
|
||||
$morelink .= ($user->uorder) ? "&order=$user->uorder" : "&order=0";
|
||||
$morelink .= ($user->thold) ? "&thold=$user->thold" : "&thold=0";
|
||||
$morelink .= "\"><FONT COLOR=\"$theme->hlcolor2\"><B>read more</B></FONT></A> | $bytes bytes in body | ";
|
||||
}
|
||||
$morelink .= "<A HREF=\"article.php?id=$story->id";
|
||||
$morelink .= "<A HREF=\"discussion.php?id=$story->id";
|
||||
$morelink .= ($user->umode) ? "&mode=$user->umode" : "&mode=threaded";
|
||||
$morelink .= ($user->uorder) ? "&order=$user->uorder" : "&order=0";
|
||||
$morelink .= ($user->thold) ? "&thold=$user->thold" : "&thold=0";
|
||||
|
@ -96,9 +96,32 @@ function addRefer($url) {
|
|||
}
|
||||
}
|
||||
|
||||
function id2story($id) {
|
||||
### Perform query:
|
||||
$result = db_query("SELECT s.*, u.userid FROM stories s LEFT JOIN users u ON s.author = u.id WHERE s.id = $id");
|
||||
return db_fetch_object($result);
|
||||
}
|
||||
|
||||
function displayModerationResults($theme, $story) {
|
||||
global $user;
|
||||
|
||||
if ($user->id && $story->id && $vote = $user->getHistory("s$story->id")) {
|
||||
$output .= "<P><B>You voted `$vote'.</B></P>\n";
|
||||
$output .= "<P>\n";
|
||||
$output .= "<B>Other people voted:</B><BR>\n";
|
||||
|
||||
$result = db_query("SELECT * FROM users WHERE history LIKE '%s$story->id%'");
|
||||
while ($account = db_fetch_object($result)) {
|
||||
$output .= "<A HREF=\"account.php?op=info&uname=$account->userid\">$account->userid</A> voted `". getHistory($account->history, "s$story->id") ."'.<BR>";
|
||||
}
|
||||
|
||||
$theme->box("Moderation results", $output);
|
||||
}
|
||||
}
|
||||
|
||||
function displayRelatedLinks($theme, $story) {
|
||||
### Parse story for <A HREF="">-tags:
|
||||
$text = "$story->abstract $story->editorial $story->article";
|
||||
$text = "$story->abstract $story->updates $story->article";
|
||||
while ($text = stristr($text, "<A HREF=")) {
|
||||
$link = substr($text, 0, strpos(strtolower($text), "</a>") + 4);
|
||||
$text = stristr($text, "</A>");
|
||||
|
@ -125,14 +148,14 @@ function displayOldHeadlines($theme, $num = 10) {
|
|||
}
|
||||
|
||||
if ($user->userid) {
|
||||
$content .= "<LI><A HREF=\"article.php?id=$story->id";
|
||||
$content .= "<LI><A HREF=\"discussion.php?id=$story->id";
|
||||
$content .= ($user->umode) ? "&mode=$user->umode" : "&mode=threaded";
|
||||
$content .= ($user->uorder) ? "&order=$user->uorder" : "&order=0";
|
||||
$content .= ($user->thold) ? "&thold=$user->thold" : "&thold=0";
|
||||
$content .= "\">$story->subject</A></LI>";
|
||||
}
|
||||
else {
|
||||
$content .= "<LI><A HREF=\"article.php?id=$story->id&mode=threaded&order=1&thold=0\">$story->subject</A></LI>";
|
||||
$content .= "<LI><A HREF=\"discussion.php?id=$story->id&mode=threaded&order=1&thold=0\">$story->subject</A></LI>";
|
||||
}
|
||||
}
|
||||
$content .= "<P ALIGN=\"right\">[ <A HREF=\"search.php\"><FONT COLOR=\"$theme->hlcolor2\">more</FONT></A> ]</P>";
|
||||
|
@ -147,14 +170,14 @@ function displayNewHeadlines($theme, $num = 10) {
|
|||
$result = db_query("SELECT id, subject FROM stories WHERE status = 2 ORDER BY id DESC LIMIT $num");
|
||||
while ($story = db_fetch_object($result)) {
|
||||
if ($user->userid) {
|
||||
$content .= "<LI><A HREF=\"article.php?id=$story->id";
|
||||
$content .= "<LI><A HREF=\"discussion.php?id=$story->id";
|
||||
$content .= ($user->umode) ? "&mode=$user->umode" : "&mode=threaded";
|
||||
$content .= ($user->uorder) ? "&order=$user->uorder" : "&order=0";
|
||||
$content .= ($user->thold) ? "&thold=$user->thold" : "&thold=0";
|
||||
$content .= "\">$story->subject</A></LI>";
|
||||
}
|
||||
else {
|
||||
$content .= "<LI><A HREF=\"article.php?id=$story->id&mode=threaded&order=1&thold=0\">$story->subject</A></LI>";
|
||||
$content .= "<LI><A HREF=\"discussion.php?id=$story->id&mode=threaded&order=1&thold=0\">$story->subject</A></LI>";
|
||||
}
|
||||
}
|
||||
$content .= "<P ALIGN=\"right\">[ <A HREF=\"search.php\"><FONT COLOR=\"$theme->hlcolor2\">more</FONT></A> ]</P>";
|
||||
|
|
|
@ -57,14 +57,14 @@
|
|||
$num++;
|
||||
|
||||
if ($user) {
|
||||
$link = "<A HREF=\"article.php?id=$entry->id";
|
||||
$link = "<A HREF=\"discussion.php?id=$entry->id";
|
||||
if (isset($user->umode)) { $link .= "&mode=$user->umode"; } else { $link .= "&mode=threaded"; }
|
||||
if (isset($user->uorder)) { $link .= "&order=$user->uorder"; } else { $link .= "&order=0"; }
|
||||
if (isset($user->thold)) { $link .= "&thold=$user->thold"; } else { $link .= "&thold=0"; }
|
||||
$link .= "\">$entry->subject</A>";
|
||||
}
|
||||
else {
|
||||
$link = "<A HREF=\"article.php?id=$entry->id&mode=threaded&order=1&thold=0\">$entry->subject</A>";
|
||||
$link = "<A HREF=\"discussion.php?id=$entry->id&mode=threaded&order=1&thold=0\">$entry->subject</A>";
|
||||
}
|
||||
|
||||
$output .= "<P>$num) <B>$link</B><BR><SMALL>by <B><A HREF=\"account.php?op=info&uname=$entry->userid\">$entry->userid</A></B>, posted on ". date("l, F d, Y - H:i A", $entry->timestamp) .".</SMALL></P>\n";
|
||||
|
|
|
@ -10,7 +10,7 @@ function submission_score($id) {
|
|||
return ($result) ? mysql_result($result, 0) : 0;
|
||||
}
|
||||
|
||||
function submission_vote($id, $vote) {
|
||||
function submission_vote($id, $vote, $comment) {
|
||||
global $user;
|
||||
|
||||
include "config.inc";
|
||||
|
@ -19,6 +19,9 @@ function submission_vote($id, $vote) {
|
|||
### Update submission's score- and votes-field:
|
||||
db_query("UPDATE stories SET score = score $vote, votes = votes + 1 WHERE id = $id");
|
||||
|
||||
### Update the comments (if required):
|
||||
db_query("INSERT INTO comments (sid, subject, comment, hostname, timestamp) VALUES($id, '". addslashes(substr($comment, 0, 29)) ." ...', '". addslashes($comment) ."', '". getenv("REMOTE_ADDR") ."', '". time() ."')");
|
||||
|
||||
### Update user's history record:
|
||||
$user->setHistory("s$id", "$vote"); // s = submission
|
||||
$user->save();
|
||||
|
@ -26,8 +29,8 @@ function submission_vote($id, $vote) {
|
|||
### Update story table (if required):
|
||||
$result = db_query("SELECT * FROM stories WHERE id = $id");
|
||||
if ($submission = db_fetch_object($result)) {
|
||||
if ($submission->score >= $submission_post_threshold) db_query("UPDATE stories SET status = 2, timestamp = '". time() ."' WHERE id = $id");
|
||||
if ($submission->score <= $submission_dump_threshold) db_query("UPDATE stories SET status = 0, timestamp = '". time() ."' WHERE id = $id");
|
||||
# if ($submission->score >= $submission_post_threshold) db_query("UPDATE stories SET status = 2, timestamp = '". time() ."' WHERE id = $id");
|
||||
# if ($submission->score <= $submission_dump_threshold) db_query("UPDATE stories SET status = 0, timestamp = '". time() ."' WHERE id = $id");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -30,33 +30,34 @@ function submission_displayMain() {
|
|||
function submission_displayItem($id) {
|
||||
global $PHP_SELF, $theme, $user;
|
||||
|
||||
include "config.inc";
|
||||
|
||||
$result = db_query("SELECT s.*, u.userid FROM stories s LEFT JOIN users u ON s.author = u.id WHERE s.id = $id");
|
||||
$submission = db_fetch_object($result);
|
||||
|
||||
$theme->header();
|
||||
$theme->article($submission, "[ <A HREF=\"$PHP_SELF\"><FONT COLOR=\"$theme->hlcolor2\">back</FONT></A> ]");
|
||||
|
||||
if ($vote = getHistory($user->history, "s$submission->id")) {
|
||||
print "<P><B>You voted `$vote' for this story!</B><BR><B>Score:</B> $submission->score<BR><B>Votes:</B> $submission->votes</P>\n";
|
||||
print "<P>\n";
|
||||
print "<B>Other people voted:</B><BR>\n";
|
||||
|
||||
$result = db_query("SELECT * FROM users WHERE history LIKE '%s$submission->id%'");
|
||||
while ($account = db_fetch_object($result)) {
|
||||
print "<A HREF=\"account.php?op=userinfo&uname=$account->userid\">$account->userid</A> voted `". getHistory($account->history, "s$submission->id") ."'.<BR>";
|
||||
}
|
||||
if ($vote = getHistory($user->history, "s$id")) {
|
||||
header("Location: discussion.php?id=$id");
|
||||
}
|
||||
else {
|
||||
include "config.inc";
|
||||
|
||||
$result = db_query("SELECT s.*, u.userid FROM stories s LEFT JOIN users u ON s.author = u.id WHERE s.id = $id");
|
||||
$submission = db_fetch_object($result);
|
||||
|
||||
$theme->header();
|
||||
$theme->article($submission, "[ <A HREF=\"$PHP_SELF\"><FONT COLOR=\"$theme->hlcolor2\">back</FONT></A> ]");
|
||||
|
||||
print "<FORM ACTION=\"$PHP_SELF\" METHOD=\"post\">\n";
|
||||
|
||||
print "<P>\n";
|
||||
print " <B>Vote:</B><BR>\n";
|
||||
print " <SELECT NAME=\"vote\">\n";
|
||||
foreach ($submission_votes as $key=>$value) {
|
||||
print " <OPTION VALUE=\"$value\">". $key ."</OPTION>\n";
|
||||
}
|
||||
foreach ($submission_votes as $key=>$value) print " <OPTION VALUE=\"$value\">". $key ."</OPTION>\n";
|
||||
print " </SELECT>\n";
|
||||
print " <INPUT TYPE=\"hidden\" NAME=\"id\" VALUE=\"$submission->id\">\n";
|
||||
print " <INPUT TYPE=\"submit\" NAME=\"op\" VALUE=\"Vote\">\n";
|
||||
print "</P>\n";
|
||||
|
||||
print "<P>\n";
|
||||
print " <B>Comment:</B><BR>\n";
|
||||
print " <TEXTAREA WRAP=\"virtual\" COLS=\"50\" ROWS=\"7\" NAME=\"comment\"></TEXTAREA>\n";
|
||||
print "</P>\n";
|
||||
|
||||
print "<INPUT TYPE=\"hidden\" NAME=\"id\" VALUE=\"$submission->id\">\n";
|
||||
print "<INPUT TYPE=\"submit\" NAME=\"op\" VALUE=\"Vote\">\n";
|
||||
print "</FORM>\n";
|
||||
}
|
||||
|
||||
|
@ -69,7 +70,7 @@ if ($user) {
|
|||
submission_displayItem($id);
|
||||
break;
|
||||
case "Vote";
|
||||
submission_vote($id, $vote);
|
||||
submission_vote($id, $vote, $comment);
|
||||
submission_displayItem($id);
|
||||
break;
|
||||
default:
|
||||
|
|
Loading…
Reference in New Issue