cvs: php-gtk-web /manual browse-notes.php browse.php
[email protected] ("Steph Fox") Fri, 07 Jul 2006 13:45:44 -0000
| Newsgroups | php.gtk.webmaster |
|---|---|
| Message-ID | <cvssfox1152279944@cvsserver> |
sfox Fri Jul 7 13:45:44 2006 UTC
Modified files:
/php-gtk-web/manual browse-notes.php browse.php
Log:
here are the two...
sfox-20060707134544.txt
(text/plain, 8.2 KB)
http://cvs.php.net/viewvc.cgi/php-gtk-web/manual/browse-notes.php?r1=1.8&r2=1.9&diff_format=u
Index: php-gtk-web/manual/browse-notes.php
diff -u /dev/null php-gtk-web/manual/browse-notes.php:1.9
--- /dev/null Fri Jul 7 13:45:44 2006
+++ php-gtk-web/manual/browse-notes.php Fri Jul 7 13:45:44 2006
@@ -0,0 +1,139 @@
+<?php
+
+require_once 'config.inc';
+require_once 'cvs-auth.inc';
+require_once 'shared-manual.inc';
+
+if (isset($_POST['cancel'])) {
+ header("Location: {$_SERVER['REQUEST_URI']}");
+ exit;
+}
+
+makeAdminOpts();
+
+if ($user = get_user()) {
+ commonHeader("Manual Notes Administration");
+
+ $order = isset($_POST['order']) ? $_POST['order'] : null;
+ if (isset($order)) {
+ if (!isset($_COOKIE['order']) || (isset($_COOKIE['order']) && $order != $_COOKIE['order'])) {
+ setcookie('order', $order, time()+(3600*24), '/');
+ }
+ } else {
+ $order = $_COOKIE['order'];
+ }
+
+ echo "<h1>Manual Notes Administration</h1>\n\n";
+ $admin = true;
+ $id = null;
+
+ if (isset($_GET['delete']) && is_numeric($_GET['delete'])) {
+ $id = $_GET['delete'];
+ }
+
+ if (isset($_GET['reject']) && is_numeric($_GET['reject'])) {
+ $id = $_GET['reject'];
+ $reject_text = "If you are receiving this email, it is because a note you posted for the\n";
+ $reject_text .= "on-line PHP-GTK manual has been rejected by one of the editors.\n\n";
+ $reject_text .= "The user contributed notes are not an appropriate place to ask questions,\n";
+ $reject_text .= "ask questions, report bugs or suggest new features.\n\n";
+ $reject_text .= "Bug reports and feature requests should be entered as 'PHP-GTK related'\n";
+ $reject_text .= "at <a href = 'http://bugs.php.net'>bugs.php.net</a>.\n";
+ $reject_text .= "Support and ways to find answers to your questions can be found at\n";
+ $reject_text .= "<a href='http://gtk.php.net/resources.php'>gtk.php.net/resources.php</a>.\n\n";
+ $reject_text .= "Your note has been removed from the on-line manual.\n\n";
+ }
+
+ if ($id) {
+ $db = sqlite_open($notesfile);
+ $query = sqlite_query($db, "SELECT * FROM notes WHERE id = '$id'");
+ $row = sqlite_fetch_array($query, SQLITE_ASSOC);
+ if (sqlite_exec($db, "DELETE FROM notes WHERE id = '$id'")) {
+ if (isset($_GET['reject'])) {
+ if (!substr($row['email'], 0, 3) == 'GTK_') {
+ /* email user */
+ //mail($row['email'], "note {$row['id']} rejected: {$row['page']}", $reject_text."----- Copy of your note below -----\n\n".stripslashes($row['comment']), "From: [email protected]");
+ }
+ $actioned = 'rejected';
+ } else {
+ $actioned = 'deleted';
+ }
+ //mail($mailto, "note $id $actioned: {$row['page']}", "Content of note:\n\n".stripslashes($row['comment']), "From: [email protected]");
+ print "<p><b>Note $id deleted successfully</b></p>";
+ } else {
+ print "<p><b>Unable to delete note $id</b></p>";
+ }
+ sqlite_close($db);
+ }
+
+ if (isset($_GET['edit']) && is_numeric($_GET['edit'])) {
+ $db = sqlite_open($notesfile);
+ $query = sqlite_query($db, "SELECT * FROM notes WHERE id = ".$_GET['edit']);
+ $row = sqlite_fetch_array($query, SQLITE_ASSOC);
+ $email = stripslashes($row['email']);
+ $comment = stripslashes($row['comment']);
+ if (substr($email, 0, 3) == 'GTK_') {
+ $email = null;
+ }
+ $get = isset($_GET['let']) ? "?let={$_GET['let']}" : null;
+ if (!$get) {
+ $get = isset($_GET['y']) ? "?y={$_GET['y']}" : null;
+ }
+ echo '<form method="POST" action="'.$_SERVER['PHP_SELF'].$get.'">';
+ echo '<table border="0" cellpadding="5" width="80%" bgcolor="#e0e0e0">';
+ echo '<tr><td align="right">E-mail:<br /></td>' .
+ '<td><input type="text" size="40" name="email" value="'.$email.'" /> ID: '.$_GET['edit'].'<br /></td></tr>';
+ echo '<input type="hidden" name="id" value='.$_GET['edit'].' />';
+ echo '<tr valign="top"><td align="right">Note:<br /></td>' .
+ '<td><textarea name="note" rows="15" cols="70">'.$comment.'</textarea><br /></td></tr>';
+ echo '<tr bgcolor="#cccccc"><td colspan="2"></td></tr>';
+ echo '<tr><td colspan="2" align="right"><input type="submit" name="modify" value="Save changes">';
+ echo ' <input type="submit" name="cancel" value="Cancel" /></td></tr>';
+ echo "</table>\n</form>\n";
+ sqlite_close($db);
+ commonFooter();
+ exit;
+ }
+
+ if (isset($_POST['modify'])) {
+ $db = sqlite_open($notesfile);
+ $query = sqlite_query($db, "SELECT * FROM notes WHERE id = ".$_POST['id']);
+ $row = sqlite_fetch_array($query, SQLITE_ASSOC);
+ $add_url = "\n\nhttp://gtk.php.net/manual/{$row['lang']}/{$row['page']}\n";
+ $note = htmlentities($_POST['note'], ENT_COMPAT, 'UTF-8');
+ $note = sqlite_escape_string($note);
+ $note = stripslashes($note); // get rid of double slashes
+ $query = "UPDATE notes SET";
+ if (!empty($_POST['email'])) $query .= " email='{$_POST['email']}',";
+ $query .= " comment='$note' WHERE id='{$row['id']}'";
+ if (sqlite_exec($db, $query)) {
+ echo "<p><b>Record {$row['id']} modified successfully</b></p>";
+ //mail($mailto, "note {$row['id']} modified: {$row['page']}", $note.$add_url, "From: [email protected]");
+ } else {
+ echo "<p><b>Record {$row['id']} not modified (query failed)</b></p>";
+ }
+ sqlite_close($db);
+ }
+
+} else {
+ commonHeader("Browse Manual Notes");
+
+ $order = isset($_POST['order']) ? $_POST['order'] : null;
+ if (isset($order)) {
+ if (!isset($_COOKIE['order']) || (isset($_COOKIE['order']) && $order != $_COOKIE['order'])) {
+ setcookie('order', $order, time()+(3600*24), '/');
+ }
+ } else {
+ $order = $_COOKIE['order'];
+ }
+
+ echo '<h1>Browse Manual Notes</h1>';
+ $admin = false;
+}
+
+ob_start();
+include('browse.php');
+
+commonFooter();
+
+?>
http://cvs.php.net/viewvc.cgi/php-gtk-web/manual/browse.php?r1=1.10&r2=1.11&diff_format=u
Index: php-gtk-web/manual/browse.php
diff -u /dev/null php-gtk-web/manual/browse.php:1.11
--- /dev/null Fri Jul 7 13:45:44 2006
+++ php-gtk-web/manual/browse.php Fri Jul 7 13:45:44 2006
@@ -0,0 +1,91 @@
+<?php
+
+$last = '';
+$used = array();
+
+$let = isset($_GET['let']) ? $_GET['let'] : 'a';
+if (strlen($let) > 1 || !preg_match("'[a-z]'", $let)) {
+ $let = 'a';
+}
+
+$y = isset($_GET['y']) ? $_GET['y'] : date('Y', time());
+if (strlen($y) != 4 || !preg_match("'[\d]{4}'", $y)) {
+ $y = date('Y', time());
+}
+
+$db = sqlite_open($notesfile);
+$query = sqlite_query($db, "SELECT DISTINCT $order FROM notes");
+
+while ($row = sqlite_fetch_array($query, SQLITE_ASSOC)) {
+ if ($order == 'date') {
+ $year = date('Y', $row['date']);
+ if (!in_array($year, $used)) {
+ $used[] = $year;
+ }
+ } else {
+ $first_letter = strtolower($row[$order][0]);
+ if (!array_key_exists($first_letter, $used)) {
+ $used[$first_letter] = true;
+ }
+ }
+}
+sqlite_close($db);
+
+$links = array();
+
+if ($order == 'date') {
+ rsort($used);
+ foreach ($used as $year) {
+ $links[] = make_link("{$_SERVER['PHP_SELF']}?y=$year", "<b>$year</b>");
+ }
+} else {
+ for ($i = ord('a'); $i <= ord('z'); $i++) {
+ $letter = chr($i);
+ if (isset($used[$letter])) {
+ $links[] = make_link("{$_SERVER['PHP_SELF']}?let=$letter", "<b>$letter</b>");
+ } else {
+ $links[] = $letter;
+ }
+ }
+}
+
+$jumpbar = "<table border='0' cellpadding='4' cellspacing='0' width='100%'>\n".
+ "<tr bgcolor='#d0d0d0' valign='top'>\n".
+ "<td align='right' colspan='2'><small>Jump to: ".
+ implode(" <span style='color:#999999'>|</span> ", $links).
+ "<br /></small></td>\n".
+ "</tr>\n".
+ "</table><br />\n\n";
+
+echo $jumpbar;
+
+echo '<table border="0" cellpadding="4" cellspacing="0" width="100%">';
+
+if (!isset($used[$let]) && $order != 'date') {
+ echo '<tr><td colspan="2">No entries for <b>'.$let.'</b><br /></td></tr>';
+ echo stretchPage(15);
+ echo " </div>";
+} else {
+ $db = sqlite_open($notesfile);
+ if ($order == 'date') {
+ $query = sqlite_query($db, "SELECT * FROM notes WHERE strftime('%Y', date, 'unixepoch') = '$y' ORDER BY date DESC");
+ } else {
+ $query = sqlite_query($db, "SELECT * FROM notes WHERE lower(substr($order, 1, 1)) = '$let' ORDER BY lower($order)");
+ }
+
+ while ($row = sqlite_fetch_array($query, SQLITE_ASSOC)) {
+ if ($order == 'page') {
+ if ($row['page'] != $last) {
+ makeTitle($row['page']);
+ $last = $row['page'];
+ }
+ } else {
+ makeTitle($row['page']);
+ }
+ makeEntry($row, $admin);
+ }
+ sqlite_close($db);
+}
+
+echo '</table>';
+echo $jumpbar;