Private symbol for hidden articles/STRs.

Batch support for articles.

HTML tag support for article contents.

Colorize PRE text.

Move project name, email, and max items/page to globals.php.
This commit is contained in:
Michael R Sweet 2004-05-19 00:57:33 +00:00
parent 659c7425b4
commit fcb37ae372
10 changed files with 337 additions and 114 deletions

View File

@ -1,6 +1,6 @@
<?php <?php
// //
// "$Id: account.php,v 1.4 2004/05/18 21:26:52 mike Exp $" // "$Id: account.php,v 1.5 2004/05/19 00:57:33 mike Exp $"
// //
// Account management page... // Account management page...
// //
@ -64,6 +64,10 @@ switch ($op)
$abstract = htmlspecialchars($row['abstract'], ENT_QUOTES); $abstract = htmlspecialchars($row['abstract'], ENT_QUOTES);
$date = date("M d, Y", $row['modify_date']); $date = date("M d, Y", $row['modify_date']);
if ($row['is_published'] == 0)
$title .= " <img src='images/private.gif' width='16' height='16' "
."border='0' align='middle' alt='Private'/>";
html_start_row(); html_start_row();
print("<td align='center' nowrap><a " print("<td align='center' nowrap><a "
@ -112,6 +116,10 @@ switch ($op)
$sttext = $status_text[$row['status']]; $sttext = $status_text[$row['status']];
$sctext = $scope_text[$row['scope']]; $sctext = $scope_text[$row['scope']];
if ($row['is_published'] == 0)
$summabbr .= " <img src='images/private.gif' width='16' height='16' "
."border='0' align='middle' alt='Private'/>";
html_start_row(); html_start_row();
print("<td nowrap>" print("<td nowrap>"
@ -184,6 +192,6 @@ switch ($op)
// //
// End of "$Id: account.php,v 1.4 2004/05/18 21:26:52 mike Exp $". // End of "$Id: account.php,v 1.5 2004/05/19 00:57:33 mike Exp $".
// //
?> ?>

View File

@ -1,6 +1,6 @@
<?php <?php
// //
// "$Id: articles.php,v 1.4 2004/05/18 21:26:52 mike Exp $" // "$Id: articles.php,v 1.5 2004/05/19 00:57:33 mike Exp $"
// //
// Web form for the article table... // Web form for the article table...
// //
@ -18,7 +18,7 @@ include_once "phplib/common.php";
// Maximum number of articles per page... // Maximum number of articles per page...
// //
$ARTICLE_PAGE_MAX = 10; $PAGE_MAX = 10;
// Get command-line options... // Get command-line options...
@ -27,6 +27,7 @@ $ARTICLE_PAGE_MAX = 10;
// //
// Operations: // Operations:
// //
// B - Batch update selected articles
// D# - Delete article // D# - Delete article
// L = List all // L = List all
// L# = List article # // L# = List article #
@ -46,7 +47,7 @@ if ($argc)
$op = $argv[0][0]; $op = $argv[0][0];
$id = (int)substr($argv[0], 1); $id = (int)substr($argv[0], 1);
if ($op != 'D' && $op != 'L' && $op != 'M' && $op != 'N') if ($op != 'D' && $op != 'L' && $op != 'M' && $op != 'N' && $op != 'B')
{ {
html_header("Article Error"); html_header("Article Error");
print("<p>Bad command '$op'!\n"); print("<p>Bad command '$op'!\n");
@ -62,7 +63,7 @@ if ($argc)
exit(); exit();
} }
if (($op == 'D' || $op == 'M') && $LOGIN_USER == "") if (($op == 'D' || $op == 'M' && $op != 'B') && $LOGIN_USER == "")
{ {
html_header("Article Error"); html_header("Article Error");
print("<p>Command '$op' requires a login!\n"); print("<p>Command '$op' requires a login!\n");
@ -123,6 +124,40 @@ $options = "+I$index+Q" . urlencode($search);
switch ($op) switch ($op)
{ {
case 'B' : // Batch update selected articles
if ($REQUEST_METHOD != "POST")
{
header("Location: $PHP_SELF?L$options");
break;
}
if (array_key_exists("IS_PUBLISHED", $_POST) &&
$_POST["IS_PUBLISHED"] != "")
{
$modify_date = time();
$modify_user = db_escape($LOGIN_USER);
$is_published = (int)$_POST["IS_PUBLISHED"];
$query = "is_published = $is_published, modify_date = $modify_date, "
."modify_user = '$modify_user'";
db_query("BEGIN TRANSACTION");
reset($_POST);
while (list($key, $val) = each($_POST))
if (substr($key, 0, 3) == "ID_")
{
$id = (int)substr($key, 3);
db_query("UPDATE article SET $query WHERE id = $id");
}
db_query("COMMIT TRANSACTION");
}
header("Location: $PHP_SELF?L$options");
break;
case 'D' : // Delete Article case 'D' : // Delete Article
if ($REQUEST_METHOD == "POST") if ($REQUEST_METHOD == "POST")
{ {
@ -294,7 +329,12 @@ switch ($op)
} }
else else
{ {
$query .= "$prefix$logic (title LIKE \"%$keyword%\"" if ($keyword == (int)$keyword)
$idsearch = " OR id = " . (int)$keyword;
else
$idsearch = "";
$query .= "$prefix$logic (title LIKE \"%$keyword%\"$idsearch"
." OR abstract LIKE \"%$keyword%\"" ." OR abstract LIKE \"%$keyword%\""
." OR contents LIKE \"%$keyword%\")"; ." OR contents LIKE \"%$keyword%\")";
$prefix = $next; $prefix = $next;
@ -318,23 +358,26 @@ switch ($op)
} }
if ($index >= $count) if ($index >= $count)
$index = $count - ($count % $ARTICLE_PAGE_MAX); $index = $count - ($count % $PAGE_MAX);
if ($index < 0) if ($index < 0)
$index = 0; $index = 0;
$start = $index + 1; $start = $index + 1;
$end = $index + $ARTICLE_PAGE_MAX; $end = $index + $PAGE_MAX;
if ($end > $count) if ($end > $count)
$end = $count; $end = $count;
$prev = $index - $ARTICLE_PAGE_MAX; $prev = $index - $PAGE_MAX;
if ($prev < 0) if ($prev < 0)
$prev = 0; $prev = 0;
$next = $index + $ARTICLE_PAGE_MAX; $next = $index + $PAGE_MAX;
print("<p>$count article(s) found, showing $start to $end:</p>\n"); print("<p>$count article(s) found, showing $start to $end:</p>\n");
if ($count > $ARTICLE_PAGE_MAX) if ($LOGIN_USER)
print("<form method='POST' action='$PHP_SELF?B$options'>\n");
if ($count > $PAGE_MAX)
{ {
print("<p><table border='0' cellspacing='0' cellpadding='0' " print("<p><table border='0' cellspacing='0' cellpadding='0' "
."width='100%'>\n"); ."width='100%'>\n");
@ -342,11 +385,11 @@ switch ($op)
print("<tr><td>"); print("<tr><td>");
if ($index > 0) if ($index > 0)
print("[&nbsp;<a href='$PHP_SELF?L+I$prev+Q" . urlencode($search) print("[&nbsp;<a href='$PHP_SELF?L+I$prev+Q" . urlencode($search)
."'>Previous&nbsp;$ARTICLE_PAGE_MAX</a>&nbsp;]"); ."'>Previous&nbsp;$PAGE_MAX</a>&nbsp;]");
print("</td><td align='right'>"); print("</td><td align='right'>");
if ($end < $count) if ($end < $count)
{ {
$next_count = min($ARTICLE_PAGE_MAX, $count - $end); $next_count = min($PAGE_MAX, $count - $end);
print("[&nbsp;<a href='$PHP_SELF?L+I$next+Q" . urlencode($search) print("[&nbsp;<a href='$PHP_SELF?L+I$next+Q" . urlencode($search)
."'>Next&nbsp;$next_count</a>&nbsp;]"); ."'>Next&nbsp;$next_count</a>&nbsp;]");
} }
@ -357,30 +400,30 @@ switch ($op)
html_start_table(array("ID","Title","Last Modified", "Comment(s)")); html_start_table(array("ID","Title","Last Modified", "Comment(s)"));
db_seek($result, $index); db_seek($result, $index);
for ($i = 0; $i < $ARTICLE_PAGE_MAX && $row = db_next($result); $i ++) for ($i = 0; $i < $PAGE_MAX && $row = db_next($result); $i ++)
{ {
html_start_row(); html_start_row();
$id = $row['id']; $id = $row['id'];
$link = "<a href='$PHP_SELF?L$id$options' alt='Article #$id'>";
print("<td align='center'><a href='$PHP_SELF?L$id$options' " print("<td align='center' nowrap>");
."alt='Article #$id'>" if ($LOGIN_USER)
."$id</a></td>"); print("<input type='checkbox' name='ID_$row[id]'>");
print("$link$id</a></td>");
$temp = htmlspecialchars($row['title']); $temp = htmlspecialchars($row['title']);
print("<td align='center' width='67%'><a href='$PHP_SELF?L$id$options' " if ($row['is_published'] == 0)
."alt='Article #$id'>" $temp .= " <img src='images/private.gif' width='16' height='16' "
."$temp</a></td>"); ."border='0' align='middle' alt='Private'/>";
print("<td align='center' width='67%'>$link$temp</a></td>");
$temp = date("M d, Y", $row['modify_date']); $temp = date("M d, Y", $row['modify_date']);
print("<td align='center'><a href='$PHP_SELF?L$id$options' " print("<td align='center'>$link$temp</a></td>");
."alt='Article #$id'>"
."$temp</a></td>");
$count = count_comments("articles.php_L$id"); $count = count_comments("articles.php_L$id");
print("<td align='center'><a href='$PHP_SELF?L$id$options' " print("<td align='center'>$link$count</a></td>");
."alt='Article #$id'>"
."$count</a></td>");
html_end_row(); html_end_row();
@ -390,9 +433,20 @@ switch ($op)
html_end_row(); html_end_row();
} }
if ($LOGIN_USER)
{
html_start_row("header");
print("<th colspan='4'>Published:&nbsp;");
select_is_published();
print("<input type='submit' value='Modify Selected Articles'/></th>\n");
html_end_row();
}
html_end_table(); html_end_table();
if ($count > $ARTICLE_PAGE_MAX) if ($count > $PAGE_MAX)
{ {
print("<p><table border='0' cellspacing='0' cellpadding='0' " print("<p><table border='0' cellspacing='0' cellpadding='0' "
."width='100%'>\n"); ."width='100%'>\n");
@ -400,11 +454,11 @@ switch ($op)
print("<tr><td>"); print("<tr><td>");
if ($index > 0) if ($index > 0)
print("[&nbsp;<a href='$PHP_SELF?L+I$prev+Q" . urlencode($search) print("[&nbsp;<a href='$PHP_SELF?L+I$prev+Q" . urlencode($search)
."'>Previous&nbsp;$ARTICLE_PAGE_MAX</a>&nbsp;]"); ."'>Previous&nbsp;$PAGE_MAX</a>&nbsp;]");
print("</td><td align='right'>"); print("</td><td align='right'>");
if ($end < $count) if ($end < $count)
{ {
$next_count = min($ARTICLE_PAGE_MAX, $count - $end); $next_count = min($PAGE_MAX, $count - $end);
print("[&nbsp;<a href='$PHP_SELF?L+I$next+Q" . urlencode($search) print("[&nbsp;<a href='$PHP_SELF?L+I$next+Q" . urlencode($search)
."'>Next&nbsp;$next_count</a>&nbsp;]"); ."'>Next&nbsp;$next_count</a>&nbsp;]");
} }
@ -419,18 +473,67 @@ switch ($op)
case 'M' : // Modify Article case 'M' : // Modify Article
if ($REQUEST_METHOD == "POST") if ($REQUEST_METHOD == "POST")
{ {
$date = time(); if (array_key_exists("IS_PUBLISHED", $_POST))
$is_published = db_escape($_POST["IS_PUBLISHED"]); $is_published = (int)$_POST["IS_PUBLISHED"];
$title = db_escape($_POST["TITLE"]); else
$abstract = db_escape($_POST["ABSTRACT"]); $is_published = 0;
$contents = db_escape($_POST["CONTENTS"]);
if (array_key_exists("TITLE", $_POST))
$title = $_POST["TITLE"];
else
$title = "";
if (array_key_exists("ABSTRACT", $_POST))
$abstract = $_POST["ABSTRACT"];
else
$abstract = "";
if (array_key_exists("CONTENTS", $_POST))
$contents = $_POST["CONTENTS"];
else
$contents = "";
if (($is_published == 0 || $LOGIN_USER) && $title != "" &&
$abstract != "" && $contents != "")
$havedata = 1;
else
$havedata = 0;
}
else
{
$result = db_query("SELECT * FROM article WHERE id = $id");
if (db_count($result) != 1)
{
print("<p><b>Error:</b> Article #$id was not found!</p>\n");
html_footer();
exit();
}
$row = db_next($result);
$is_published = $row["is_published"];
$title = $row["title"];
$abstract = $row["abstract"];
$contents = $row["contents"];
db_free($row);
$havedata = 0;
}
if ($havedata)
{
$title = db_escape($title);
$abstract = db_escape($abstract);
$contents = db_escape($contents);
$modify_date = time();
db_query("UPDATE article SET " db_query("UPDATE article SET "
."is_published = $is_published, " ."is_published = $is_published, "
."title = '$title', " ."title = '$title', "
."abstract = '$abstract', " ."abstract = '$abstract', "
."contents = '$contents', " ."contents = '$contents', "
."modify_date = $date, " ."modify_date = $modify_date, "
."modify_user = '$LOGIN_USER' " ."modify_user = '$LOGIN_USER' "
."WHERE id = $id"); ."WHERE id = $id");
@ -446,35 +549,26 @@ switch ($op)
html_end_links(); html_end_links();
print("<h1>Modify Article #$id</h1>\n"); print("<h1>Modify Article #$id</h1>\n");
$result = db_query("SELECT * FROM article WHERE id = $id");
if (db_count($result) != 1)
{
print("<p><b>Error:</b> Article #$id was not found!</p>\n");
html_footer();
exit();
}
$row = db_next($result);
print("<form method='post' action='$PHP_SELF?M$id$options'>" print("<form method='post' action='$PHP_SELF?M$id$options'>"
."<p><table width='100%' cellpadding='5' cellspacing='0' border='0'>\n"); ."<p><table width='100%' cellpadding='5' cellspacing='0' border='0'>\n");
print("<tr><th align='right'>Published:</th><td>"); print("<tr><th align='right'>Published:</th><td>");
select_is_published($row['is_published']); select_is_published($is_published);
print("</td></tr>\n"); print("</td></tr>\n");
$temp = htmlspecialchars($row['title'], ENT_QUOTES); $temp = htmlspecialchars($title, ENT_QUOTES);
print("<tr><th align='right'>Title:</th>" print("<tr><th align='right'>Title:</th>"
."<td><input type='text' name='TITLE' " ."<td><input type='text' name='TITLE' "
."value='$temp' size='40'></td></tr>\n"); ."value='$temp' size='40'></td></tr>\n");
$temp = htmlspecialchars($row['abstract'], ENT_QUOTES); $temp = htmlspecialchars($abstract, ENT_QUOTES);
print("<tr><th align='right'>Abstract:</th>" print("<tr><th align='right'>Abstract:</th>"
."<td><input type='text' name='ABSTRACT' " ."<td><input type='text' name='ABSTRACT' "
."value='$temp' size='40'></td></tr>\n"); ."value='$temp' size='40'></td></tr>\n");
$temp = htmlspecialchars($row['contents'], ENT_QUOTES); $temp = htmlspecialchars($contents, ENT_QUOTES);
print("<tr><th align='right'>Contents:</th>" print("<tr><th align='right' valign='top'>Contents:</th>"
."<td><textarea name='CONTENTS' " ."<td><textarea name='CONTENTS' "
."cols='80' rows='10' wrap='virtual'>" ."cols='80' rows='10' wrap='virtual'>"
."$temp</textarea></td></tr>\n"); ."$temp</textarea></td></tr>\n");
@ -490,18 +584,63 @@ switch ($op)
case 'N' : // Post new Article case 'N' : // Post new Article
if ($REQUEST_METHOD == "POST") if ($REQUEST_METHOD == "POST")
{ {
$date = time(); if (array_key_exists("IS_PUBLISHED", $_POST))
$is_published = db_escape($_POST["IS_PUBLISHED"]); $is_published = (int)$_POST["IS_PUBLISHED"];
$title = db_escape($_POST["TITLE"]); else
$abstract = db_escape($_POST["ABSTRACT"]); $is_published = 0;
$contents = db_escape($_POST["CONTENTS"]);
if (array_key_exists("TITLE", $_POST))
$title = $_POST["TITLE"];
else
$title = "";
if (array_key_exists("ABSTRACT", $_POST))
$abstract = $_POST["ABSTRACT"];
else
$abstract = "";
if (array_key_exists("CONTENTS", $_POST))
$contents = $_POST["CONTENTS"];
else
$contents = "";
if (array_key_exists("CREATE_USER", $_POST))
$create_user = $_POST["CREATE_USER"];
else
$create_user = "";
if (($is_published == 0 || $LOGIN_USER) && $title != "" &&
$abstract != "" && $contents != "")
$havedata = 1;
else
$havedata = 0;
}
else
{
$is_published = 0;
$title = "";
$abstract = "";
$contents = "";
if (array_key_exists("FROM", $_COOKIE))
$create_user = $_COOKIE["FROM"];
else
$create_user = "";
$havedata = 0;
}
if ($havedata)
{
$title = db_escape($title);
$abstract = db_escape($abstract);
$contents = db_escape($contents);
$create_date = time();
$create_user = db_escape($create_user);
db_query("INSERT INTO article VALUES(NULL," db_query("INSERT INTO article VALUES(NULL,"
."$is_published," ."$is_published,'$title','$abstract','$contents',"
."'$title'," ."$create_date,'$create_user',$create_date,'$create_user')");
."'$abstract',"
."'$contents',"
."$date,'$LOGIN_USER',$date,'$LOGIN_USER')");
$id = db_insert_id(); $id = db_insert_id();
@ -516,30 +655,56 @@ switch ($op)
html_end_links(); html_end_links();
print("<h1>Post New Article</h1>\n"); print("<h1>Post New Article</h1>\n");
print("<p>Please use this form to post announcements, how-to's, "
."examples, and case studies showing how you use $PROJECT. "
."We will proofread your article, and if we determine it is "
."appropriate for the site, we will make the article public "
."on the site. <i>Thank you</i> for supporting $PROJECT!</p>\n"
."<hr noshade/>\n");
print("<form method='post' action='$PHP_SELF?N$options'>" print("<form method='post' action='$PHP_SELF?N$options'>"
."<p><table width='100%' cellpadding='5' cellspacing='0' border='0'>\n"); ."<p><table width='100%' cellpadding='5' cellspacing='0' border='0'>\n");
if ($LOGIN_USER != "") if ($LOGIN_USER != "")
{ {
print("<tr><th align='right'>Published:</th><td>"); print("<tr><th align='right'>Published:</th><td>");
select_is_published(); select_is_published($is_published);
print("</td></tr>\n"); print("</td></tr>\n");
} }
else else
print("<input type='hidden' name='IS_PUBLISHED' value='0'/>\n"); print("<input type='hidden' name='IS_PUBLISHED' value='0'/>\n");
$title = htmlspecialchars($title, ENT_QUOTES);
print("<tr><th align='right'>Title:</th>" print("<tr><th align='right'>Title:</th>"
."<td><input type='text' name='TITLE' " ."<td><input type='text' name='TITLE' "
."size='40'></td></tr>\n"); ."size='40' value='$title'></td></tr>\n");
$abstract = htmlspecialchars($abstract, ENT_QUOTES);
print("<tr><th align='right'>Abstract:</th>" print("<tr><th align='right'>Abstract:</th>"
."<td><input type='text' name='ABSTRACT' " ."<td><input type='text' name='ABSTRACT' "
."size='40'></td></tr>\n"); ."size='40' value='$abstract'></td></tr>\n");
print("<tr><th align='right'>Contents:</th>" $author = htmlspecialchars($author, ENT_QUOTES);
print("<tr><th align='right'>Author:</th>"
."<td><input type='text' name='CREATE_USER' "
."size='40' value='$author'></td></tr>\n");
$contents = htmlspecialchars($contents, ENT_QUOTES);
print("<tr><th align='right' valign='top'>Contents:</th>"
."<td><textarea name='CONTENTS' " ."<td><textarea name='CONTENTS' "
."cols='80' rows='10' wrap='virtual'>" ."cols='80' rows='10' wrap='virtual'>"
."</textarea></td></tr>\n"); ."$contents</textarea>\n"
."<p>The contents of the article may contain the following "
."HTML elements: <tt>A</tt>, <tt>B</tt>, <tt>BLOCKQUOTE</tt>, "
."<tt>CODE</tt>, <tt>EM</tt>, <tt>H1</tt>, <tt>H2</tt>, "
."<tt>H3</tt>, <tt>H4</tt>, <tt>H5</tt>, <tt>H6</tt>, <tt>I</tt>, "
."<tt>IMG</tt>, <tt>LI</tt>, <tt>OL</tt>, <tt>P</tt>, <tt>PRE</tt>, "
."<tt>TT</tt>, <tt>U</tt>, <tt>UL</tt></p></td></tr>\n");
print("<tr><th colspan='2'>" print("<tr><th colspan='2'>"
."<input type='submit' value='Create Article'></th></tr>\n"); ."<input type='submit' value='Create Article'></th></tr>\n");
@ -551,6 +716,6 @@ switch ($op)
// //
// End of "$Id: articles.php,v 1.4 2004/05/18 21:26:52 mike Exp $". // End of "$Id: articles.php,v 1.5 2004/05/19 00:57:33 mike Exp $".
// //
?> ?>

View File

@ -1,6 +1,6 @@
<?php <?php
// //
// "$Id: comment.php,v 1.2 2004/05/18 21:26:52 mike Exp $" // "$Id: comment.php,v 1.3 2004/05/19 00:57:33 mike Exp $"
// //
// Comment and moderation interface for PHP pages... // Comment and moderation interface for PHP pages...
// //
@ -232,7 +232,7 @@ else
print("<tr><th align='right'>File Path:</th>" print("<tr><th align='right'>File Path:</th>"
."<td><input type='text' name='FILE' value='$path' " ."<td><input type='text' name='FILE' value='$path' "
."size='40'/></td></tr>\n"); ."size='40'/></td></tr>\n");
print("<tr><th align='right'>Status:</th>" print("<tr><th align='right'>Score:</th>"
."<td><select name='STATUS'>"); ."<td><select name='STATUS'>");
for ($i = 0; $i <= 5; $i ++) for ($i = 0; $i <= 5; $i ++)
if ($i == $status) if ($i == $status)
@ -361,6 +361,6 @@ else
} }
// //
// End of "$Id: comment.php,v 1.2 2004/05/18 21:26:52 mike Exp $". // End of "$Id: comment.php,v 1.3 2004/05/19 00:57:33 mike Exp $".
// //
?> ?>

BIN
www/images/private.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 B

View File

@ -1,6 +1,6 @@
<? <?
// //
// "$Id: common.php,v 1.5 2004/05/18 21:26:52 mike Exp $" // "$Id: common.php,v 1.6 2004/05/19 00:57:33 mike Exp $"
// //
// Common utility functions for PHP pages... // Common utility functions for PHP pages...
// //
@ -122,6 +122,56 @@ format_text($text) // I - Original string
{ {
case '<' : case '<' :
$col ++; $col ++;
if (tolower(substr($text, $i, 8)) == "<a href=" ||
tolower(substr($text, $i, 8)) == "<a name=" ||
tolower(substr($text, $i, 4)) == "</a>" ||
tolower(substr($text, $i, 3)) == "<b>" ||
tolower(substr($text, $i, 4)) == "</b>" ||
tolower(substr($text, $i, 12)) == "<blockquote>" ||
tolower(substr($text, $i, 13)) == "</blockquote>" ||
tolower(substr($text, $i, 6)) == "<code>" ||
tolower(substr($text, $i, 7)) == "</code>" ||
tolower(substr($text, $i, 4)) == "<em>" ||
tolower(substr($text, $i, 5)) == "</em>" ||
tolower(substr($text, $i, 4)) == "<h1>" ||
tolower(substr($text, $i, 5)) == "</h1>" ||
tolower(substr($text, $i, 4)) == "<h2>" ||
tolower(substr($text, $i, 5)) == "</h2>" ||
tolower(substr($text, $i, 4)) == "<h3>" ||
tolower(substr($text, $i, 5)) == "</h3>" ||
tolower(substr($text, $i, 4)) == "<h4>" ||
tolower(substr($text, $i, 5)) == "</h4>" ||
tolower(substr($text, $i, 4)) == "<h5>" ||
tolower(substr($text, $i, 5)) == "</h5>" ||
tolower(substr($text, $i, 4)) == "<h6>" ||
tolower(substr($text, $i, 5)) == "</h6>" ||
tolower(substr($text, $i, 3)) == "<i>" ||
tolower(substr($text, $i, 4)) == "</i>" ||
tolower(substr($text, $i, 5)) == "<img " ||
tolower(substr($text, $i, 4)) == "<li>" ||
tolower(substr($text, $i, 5)) == "</li>" ||
tolower(substr($text, $i, 4)) == "<ol>" ||
tolower(substr($text, $i, 5)) == "</ol>" ||
tolower(substr($text, $i, 3)) == "<p>" ||
tolower(substr($text, $i, 4)) == "</p>" ||
tolower(substr($text, $i, 5)) == "<pre>" ||
tolower(substr($text, $i, 6)) == "</pre>" ||
tolower(substr($text, $i, 4)) == "<tt>" ||
tolower(substr($text, $i, 5)) == "</tt>" ||
tolower(substr($text, $i, 3)) == "<u>" ||
tolower(substr($text, $i, 4)) == "</u>" ||
tolower(substr($text, $i, 4)) == "<ul>" ||
tolower(substr($text, $i, 5)) == "</ul>")
{
while ($i < $len && $text[$i] != '>')
{
$ftext .= $text[$i];
$i ++;
}
$ftext .= ">";
}
else
$ftext .= "&lt;"; $ftext .= "&lt;";
break; break;
@ -183,13 +233,13 @@ format_text($text) // I - Original string
break; break;
case " " : case " " :
if ($col == 0 && !pre) if ($col == 0 && !$pre)
{ {
for ($j = $i + 1; $j < $len; $j ++) for ($j = $i + 1; $j < $len; $j ++)
if ($text[$j] != " " && $text[$j] != "\t") if ($text[$j] != " " && $text[$j] != "\t")
break; break;
if ($j < $len && $text[$j] == "%") if ($j < $len && $text[$j] == '%')
{ {
$ftext .= "\n<pre>"; $ftext .= "\n<pre>";
$pre = 1; $pre = 1;
@ -585,6 +635,6 @@ show_comments($url, // I - URL for comment
// //
// End of "$Id: common.php,v 1.5 2004/05/18 21:26:52 mike Exp $". // End of "$Id: common.php,v 1.6 2004/05/19 00:57:33 mike Exp $".
// //
?> ?>

View File

@ -1,6 +1,6 @@
<?php <?php
// //
// "$Id: db.php,v 1.3 2004/05/17 20:28:52 mike Exp $" // "$Id: db.php,v 1.4 2004/05/19 00:57:33 mike Exp $"
// //
// Common database include file for PHP web pages. This file can be used // Common database include file for PHP web pages. This file can be used
// to abstract the specific database in use... // to abstract the specific database in use...
@ -122,7 +122,7 @@ function // O - Row object or NULL at end
db_next($result) // I - Result of query db_next($result) // I - Result of query
{ {
if ($result) if ($result)
return (sqlite_fetch_array($result, SQLITE_ASSOC)); return (sqlite_fetch_array($result, SQLITE_ASSOC, TRUE));
else else
return (NULL); return (NULL);
} }
@ -159,6 +159,6 @@ db_seek($result, // I - Result of query
// //
// End of "$Id: db.php,v 1.3 2004/05/17 20:28:52 mike Exp $". // End of "$Id: db.php,v 1.4 2004/05/19 00:57:33 mike Exp $".
// //
?> ?>

View File

@ -1,6 +1,6 @@
<?php <?php
// //
// "$Id: globals.php,v 1.1 2004/05/17 23:02:35 mike Exp $" // "$Id: globals.php,v 1.2 2004/05/19 00:57:33 mike Exp $"
// //
// Global PHP variables... // Global PHP variables...
// //
@ -11,6 +11,10 @@
// Global vars... // Global vars...
// //
$PROJECT = "Mini-XML"; // Title of project
$EMAIL = "mxml@easysw.com"; // Default notification address
$PAGE_MAX = 10; // Max STRs per page
global $_COOKIE, $_FILES, $_POST, $_SERVER; global $_COOKIE, $_FILES, $_POST, $_SERVER;
$argc = $_SERVER["argc"]; $argc = $_SERVER["argc"];
@ -19,7 +23,8 @@ $PHP_SELF = $_SERVER["PHP_SELF"];
$REQUEST_METHOD = $_SERVER["REQUEST_METHOD"]; $REQUEST_METHOD = $_SERVER["REQUEST_METHOD"];
$SERVER_NAME = $_SERVER["SERVER_NAME"]; $SERVER_NAME = $_SERVER["SERVER_NAME"];
// //
// End of "$Id: globals.php,v 1.1 2004/05/17 23:02:35 mike Exp $". // End of "$Id: globals.php,v 1.2 2004/05/19 00:57:33 mike Exp $".
// //
?> ?>

View File

@ -1,6 +1,6 @@
<?php <?php
// //
// "$Id: str.php,v 1.1 2004/05/18 01:39:00 mike Exp $" // "$Id: str.php,v 1.2 2004/05/19 00:57:33 mike Exp $"
// //
// Common STR definitions... // Common STR definitions...
// //
@ -11,10 +11,6 @@
// STR constants... // STR constants...
// //
$STR_PROJECT = "Mini-XML"; // Title of project
$STR_EMAIL = "mxml@easysw.com"; // Default notification address
$STR_PAGE_MAX = 10; // Max STRs per page
$STR_STATUS_RESOLVED = 1; $STR_STATUS_RESOLVED = 1;
$STR_STATUS_UNRESOLVED = 2; $STR_STATUS_UNRESOLVED = 2;
$STR_STATUS_ACTIVE = 3; $STR_STATUS_ACTIVE = 3;
@ -81,6 +77,6 @@ $scope_long = array(
// //
// End of "$Id: str.php,v 1.1 2004/05/18 01:39:00 mike Exp $". // End of "$Id: str.php,v 1.2 2004/05/19 00:57:33 mike Exp $".
// //
?> ?>

View File

@ -1,6 +1,6 @@
<?php <?php
// //
// "$Id: str.php,v 1.6 2004/05/18 19:58:34 mike Exp $" // "$Id: str.php,v 1.7 2004/05/19 00:57:33 mike Exp $"
// //
// Software Trouble Report page... // Software Trouble Report page...
// //
@ -76,7 +76,7 @@ notify_creator($id, // I - STR #
global $priority_long; global $priority_long;
global $scope_long; global $scope_long;
global $status_long; global $status_long;
global $PHP_SELF, $STR_EMAIL, $STR_PROJECT; global $PHP_SELF, $EMAIL, $PROJECT;
$result = db_query("SELECT * FROM str WHERE id = $id"); $result = db_query("SELECT * FROM str WHERE id = $id");
@ -100,7 +100,7 @@ notify_creator($id, // I - STR #
if ($row['create_user'] != $row['modify_user'] && if ($row['create_user'] != $row['modify_user'] &&
$row['create_user'] != $manager) $row['create_user'] != $manager)
mail($row['create_user'], "$STR_PROJECT STR #$id $what", mail($row['create_user'], "$PROJECT STR #$id $what",
"Your software trouble report #$id has been $what. You can check\n" "Your software trouble report #$id has been $what. You can check\n"
."the status of the report and add additional comments and/or files\n" ."the status of the report and add additional comments and/or files\n"
."at the following URL:\n" ."at the following URL:\n"
@ -116,7 +116,7 @@ notify_creator($id, // I - STR #
."Fix Version: $fix_version\n" ."Fix Version: $fix_version\n"
."\n$contents" ."\n$contents"
."________________________________________________________________\n" ."________________________________________________________________\n"
."Thank you for using the $STR_PROJECT Software Trouble Report page!", ."Thank you for using the $PROJECT Software Trouble Report page!",
"From: noreply@easysw.com\r\n"); "From: noreply@easysw.com\r\n");
$ccresult = db_query("SELECT email FROM strcc WHERE str_id = $id"); $ccresult = db_query("SELECT email FROM strcc WHERE str_id = $id");
@ -124,7 +124,7 @@ notify_creator($id, // I - STR #
{ {
while ($ccrow = db_next($ccresult)) while ($ccrow = db_next($ccresult))
{ {
mail($ccrow->email, "$STR_PROJECT STR #$id $what", mail($ccrow->email, "$PROJECT STR #$id $what",
"Software trouble report #$id has been $what. You can check\n" "Software trouble report #$id has been $what. You can check\n"
."the status of the report and add additional comments and/or files\n" ."the status of the report and add additional comments and/or files\n"
."at the following URL:\n" ."at the following URL:\n"
@ -140,7 +140,7 @@ notify_creator($id, // I - STR #
."Fix Version: $fix_version\n" ."Fix Version: $fix_version\n"
."\n$contents" ."\n$contents"
."________________________________________________________________\n" ."________________________________________________________________\n"
."Thank you for using the $STR_PROJECT Software Trouble Report page!", ."Thank you for using the $PROJECT Software Trouble Report page!",
"From: noreply@easysw.com\r\n"); "From: noreply@easysw.com\r\n");
} }
@ -150,10 +150,10 @@ notify_creator($id, // I - STR #
if ($row['manager_email'] != "") if ($row['manager_email'] != "")
$manager = $row['manager_email']; $manager = $row['manager_email'];
else else
$manager = "$STR_EMAIL"; $manager = "$EMAIL";
if ($row['modify_user'] != $manager) if ($row['modify_user'] != $manager)
mail($manager, "$STR_PROJECT STR #$id $what", mail($manager, "$PROJECT STR #$id $what",
"The software trouble report #$id assigned to you has been $what.\n" "The software trouble report #$id assigned to you has been $what.\n"
."You can manage the report and add additional comments and/or files\n" ."You can manage the report and add additional comments and/or files\n"
."at the following URL:\n" ."at the following URL:\n"
@ -748,26 +748,26 @@ switch ($op)
} }
if ($index >= $count) if ($index >= $count)
$index = $count - ($count % $STR_PAGE_MAX); $index = $count - ($count % $PAGE_MAX);
if ($index < 0) if ($index < 0)
$index = 0; $index = 0;
$start = $index + 1; $start = $index + 1;
$end = $index + $STR_PAGE_MAX; $end = $index + $PAGE_MAX;
if ($end > $count) if ($end > $count)
$end = $count; $end = $count;
$prev = $index - $STR_PAGE_MAX; $prev = $index - $PAGE_MAX;
if ($prev < 0) if ($prev < 0)
$prev = 0; $prev = 0;
$next = $index + $STR_PAGE_MAX; $next = $index + $PAGE_MAX;
print("<p>$count STR(s) found, showing $start to $end:</p>\n"); print("<p>$count STR(s) found, showing $start to $end:</p>\n");
if ($LOGIN_USER) if ($LOGIN_USER)
print("<form method='POST' action='$PHP_SELF?B$options'>\n"); print("<form method='POST' action='$PHP_SELF?B$options'>\n");
if ($count > $STR_PAGE_MAX) if ($count > $PAGE_MAX)
{ {
print("<p><table border='0' cellspacing='0' cellpadding='0' " print("<p><table border='0' cellspacing='0' cellpadding='0' "
."width='100%'>\n"); ."width='100%'>\n");
@ -777,11 +777,11 @@ switch ($op)
print("[&nbsp;<a href='$PHP_SELF?L+P$priority+S$status+C$scope+I$prev+" print("[&nbsp;<a href='$PHP_SELF?L+P$priority+S$status+C$scope+I$prev+"
."E$femail+Q" ."E$femail+Q"
. urlencode($search) . urlencode($search)
."'>Previous&nbsp;$STR_PAGE_MAX</a>&nbsp;]"); ."'>Previous&nbsp;$PAGE_MAX</a>&nbsp;]");
print("</td><td align='right'>"); print("</td><td align='right'>");
if ($end < $count) if ($end < $count)
{ {
$next_count = min($STR_PAGE_MAX, $count - $end); $next_count = min($PAGE_MAX, $count - $end);
print("[&nbsp;<a href='$PHP_SELF?L+P$priority+S$status+C$scope+I$next+" print("[&nbsp;<a href='$PHP_SELF?L+P$priority+S$status+C$scope+I$next+"
."E$femail+Q" ."E$femail+Q"
. urlencode($search) . urlencode($search)
@ -796,7 +796,7 @@ switch ($op)
"Assigned To")); "Assigned To"));
db_seek($result, $index); db_seek($result, $index);
for ($i = 0; $i < $STR_PAGE_MAX && $row = db_next($result); $i ++) for ($i = 0; $i < $PAGE_MAX && $row = db_next($result); $i ++)
{ {
$date = date("M d, Y", $row['modify_date']); $date = date("M d, Y", $row['modify_date']);
$summary = htmlspecialchars($row['summary'], ENT_QUOTES); $summary = htmlspecialchars($row['summary'], ENT_QUOTES);
@ -809,6 +809,10 @@ switch ($op)
html_start_row(); html_start_row();
if ($row['is_published'] == 0)
$summabbr .= " <img src='images/private.gif' width='16' height='16' "
."border='0' align='middle' alt='Private'/>";
print("<td nowrap>"); print("<td nowrap>");
if ($LOGIN_USER) if ($LOGIN_USER)
print("<input type='checkbox' name='ID_$row[id]'>"); print("<input type='checkbox' name='ID_$row[id]'>");
@ -901,7 +905,7 @@ switch ($op)
html_end_table(); html_end_table();
if ($count > $STR_PAGE_MAX) if ($count > $PAGE_MAX)
{ {
print("<p><table border='0' cellspacing='0' cellpadding='0' " print("<p><table border='0' cellspacing='0' cellpadding='0' "
."width='100%'>\n"); ."width='100%'>\n");
@ -911,11 +915,11 @@ switch ($op)
print("[&nbsp;<a href='$PHP_SELF?L+P$priority+S$status+C$scope+I$prev+" print("[&nbsp;<a href='$PHP_SELF?L+P$priority+S$status+C$scope+I$prev+"
."E$femail+Q" ."E$femail+Q"
. urlencode($search) . urlencode($search)
."'>Previous&nbsp;$STR_PAGE_MAX</a>&nbsp;]"); ."'>Previous&nbsp;$PAGE_MAX</a>&nbsp;]");
print("</td><td align='right'>"); print("</td><td align='right'>");
if ($end < $count) if ($end < $count)
{ {
$next_count = min($STR_PAGE_MAX, $count - $end); $next_count = min($PAGE_MAX, $count - $end);
print("[&nbsp;<a href='$PHP_SELF?L+P$priority+S$status+C$scope+I$next+" print("[&nbsp;<a href='$PHP_SELF?L+P$priority+S$status+C$scope+I$next+"
."E$femail+Q" ."E$femail+Q"
. urlencode($search) . urlencode($search)
@ -1656,11 +1660,11 @@ switch ($op)
else else
{ {
print("<p>Please use this form to report all bugs and request " print("<p>Please use this form to report all bugs and request "
."features in the $STR_PROJECT software. Be sure to include " ."features in the $PROJECT software. Be sure to include "
."the operating system, compiler, sample programs and/or " ."the operating system, compiler, sample programs and/or "
."files, and any other information you can about your " ."files, and any other information you can about your "
."problem. <i>Thank you</i> for helping us to improve " ."problem. <i>Thank you</i> for helping us to improve "
."$STR_PROJECT!</p><hr noshade/>\n"); ."$PROJECT!</p><hr noshade/>\n");
$hstart = ""; $hstart = "";
$hend = ""; $hend = "";
@ -1848,6 +1852,6 @@ switch ($op)
} }
// //
// End of "$Id: str.php,v 1.6 2004/05/18 19:58:34 mike Exp $". // End of "$Id: str.php,v 1.7 2004/05/19 00:57:33 mike Exp $".
// //
?> ?>

View File

@ -26,15 +26,10 @@ KBD {
} }
PRE { PRE {
color: #000000; color: #7f0000;
font-family: monospace; font-family: monospace;
} }
PRE.command {
margin-left: 2em;
font-size: smaller;
}
SUB, SUP { SUB, SUP {
font-size: smaller; font-size: smaller;
} }