cvs: php-master-web /entry user-note.php /fetch user-notes.php /manage user-notes.php
| From: | Andrew Lindeman | Date: | Mon, 19 May 2003 22:13:29 +0000 |
| Subject: | cvs: php-master-web /entry user-note.php /fetch user-notes.php /manage user-notes.php | ||
| Groups: | php.mirrors | ||
| Request: | Send a blank email to php-mirrors+get-17824@lists.php.net to get a copy of this message | ||
alindeman Mon May 19 18:13:29 2003 EDT
Modified files:
/php-master-web/entry user-note.php
/php-master-web/fetch user-notes.php
/php-master-web/manage user-notes.php
Log:
Make notes not appear in the manual until someone approves them. This
prevents questions/bug/other non-note material from appearing in the
manual before it can be rejected/deleted. Make them kind of kind the
events system is right now...
Index: php-master-web/entry/user-note.php
diff -u php-master-web/entry/user-note.php:1.15 php-master-web/entry/user-note.php:1.16
--- php-master-web/entry/user-note.php:1.15 Sun May 18 19:14:23 2003
+++ php-master-web/entry/user-note.php Mon May 19 18:13:28 2003
@@ -50,19 +50,22 @@
$sect = ereg_replace("\.php$","",$sect);
-$query = "INSERT INTO note (user, note, sect, ts) VALUES ";
+$query = "INSERT INTO note (user, note, sect, ts, status) VALUES ";
# no need to call htmlspecialchars() -- we handle it on output
-$query .= "('$user','$note','$sect',NOW())";
+$query .= "('$user','$note','$sect',NOW(),
'na')";
+
+//na = not approved. Don't display notes until they are approved by an editor
//echo "<!--$query-->\n";
if (@mysql_query($query)) {
$new_id = mysql_insert_id();
$msg = stripslashes($note);
$msg .= "\n----\n";
- $msg .= "Manual Page -- http://www.php.net/manual/en/$sect.php\n";
- $msg .= "Edit Note -- http://master.php.net/manage/user-notes.php?action=edit+$new_id\n";
- $msg .= "Delete Note -- http://master.php.net/manage/user-notes.php?action=delete+$new_id&report=yes\n";
- $msg .= "Reject Note -- http://master.php.net/manage/user-notes.php?action=reject+$new_id&report=yes\n";
+ $msg .= "Manual Page -- http://www.php.net/manual/en/$sect.php\n";
+ $msg .= "Edit Note -- http://master.php.net/manage/user-notes.php?action=edit+$new_id\n";
+ $msg .= "Approve Note -- http://master.php.net/manage/user-notes.php?action=approve+$new_id&report=yes\n";
+ $msg .= "Delete Note -- http://master.php.net/manage/user-notes.php?action=delete+$new_id&report=yes\n";
+ $msg .= "Reject Note -- http://master.php.net/manage/user-notes.php?action=reject+$new_id&report=yes\n";
# make sure we have a return address.
if (!$user) $user = "php-general@lists.php.net";
// see who requested an alert
Index: php-master-web/fetch/user-notes.php
diff -u php-master-web/fetch/user-notes.php:1.4 php-master-web/fetch/user-notes.php:1.5
--- php-master-web/fetch/user-notes.php:1.4 Sun Apr 21 13:58:50 2002
+++ php-master-web/fetch/user-notes.php Mon May 19 18:13:28 2003
@@ -12,6 +12,10 @@
$query = "SELECT DISTINCT id,note.sect,user,note,UNIX_TIMESTAMP(ts) AS ts,";
$query .= "IF(votes=0, 10, rating/votes) AS rate";
$query .= " FROM note";
+
+//Only select notes that have been approved
+$query .= " WHERE status is NULL";
+
$query .= " ORDER BY sect,rate DESC,ts";
$res = @mysql_query($query) or exit;
Index: php-master-web/manage/user-notes.php
diff -u php-master-web/manage/user-notes.php:1.20 php-master-web/manage/user-notes.php:1.21
--- php-master-web/manage/user-notes.php:1.20 Sun May 18 22:36:10 2003
+++ php-master-web/manage/user-notes.php Mon May 19 18:13:29 2003
@@ -6,6 +6,8 @@
// ** alerts ** remove comment when alerts are on-line
//require_once 'alert_lib.inc';
+$mailto = "php-notes@lists.php.net";
+
$reject_text =
'You are receiving this email because your note posted
to the on-line PHP manual has been removed by one of the editors.
@@ -77,6 +79,32 @@
or die("unable to select database");
switch($action) {
+case 'approve':
+ if ($id) {
+ if ($result = mysql_query("SELECT * FROM note WHERE id=$id")) {
+ if (!mysql_num_rows ($result)) {
+ die ("Note #$id doesn't exist. It has probably been deleted/rejected
already");
+ }
+
+ $row = mysql_fetch_array ($result);
+
+ if ($row['status'] != 'na') {
+ die ("Note #$id has already been approved");
+ }
+
+ if ($row['id'] && mysql_query ("UPDATE note SET status=NULL WHERE
id=$id")) {
+ mail ($mailto, "note $row[id] approved from $row[sect] by $user", "This note
has been approved and will appear in the manual\n\n----\n\n".$row['note'],
"From: $user@php.net\r\nIn-Reply-To: <note-$id@php.net>");
+ }
+
+ print "Note #$id has been approved and will appear in the manual";
+ exit;
+ } else {
+ head();
+ echo "<p>An unknown error occured. Try again
later.</p><pre>",mysql_error(),"</pre>";
+ foot();
+ exit;
+ }
+ }
case 'reject':
case 'delete':
if ($id) {
@@ -87,7 +115,6 @@
$row = mysql_fetch_array($result);
if ($row['id'] && mysql_query("DELETE FROM note WHERE id=$id")) {
- $mailto = "php-notes@lists.php.net";
// ** alerts **
//$mailto .= get_emails_for_sect($row["sect"]);
mail($mailto,"note $row[id] ".($action == "reject" ?
"rejected" : "deleted")." from $row[sect] by $user","Note
Submitter: $row[user]\n\n----\n\n".$row['note'],"From:
$user@php.net\r\nIn-Reply-To: <note-$id@php.net>");
@@ -137,7 +164,7 @@
if (isset($note) && $action == "edit") {
if (@mysql_query("UPDATE note SET
note='$note',user='$email',updated=NOW() WHERE id=$id")) {
- $mailto = "php-notes@lists.php.net";
+
// ** alerts **
//$mailto .= get_emails_for_sect($row["sect"]);
mail($mailto,"note $row[id] modified in $row[sect] by
$user",stripslashes($note)."\n\n--was--\n$row[note]\n\nhttp://www.php.net/manual/en/$row[sect].php","From:
$user@php.net\r\nIn-Reply-To: <note-$id@php.net>");