cvs: php-master-web /entry user-note.php /fetch user-notes.php /manage user-notes.php

From: 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>");

« previous php.mirrors (#17824) next »