mirror of
https://github.com/michaelrsweet/mxml.git
synced 2024-11-08 13:39:58 +00:00
Web site updates.
comment.php: - Fix comment date. data/software.md5: - Moved from swfiles/mxml.md5 and reformatted. newsgroups.php: - Deleted phplib/html.php: - Removed newsgroups and polls links. - Renamed "support" to "bugs & features" - Add refresh URL support. software.php: - Use download mirrors. - Synced with other site code. str.php: - Change to "Bugs & Features" - Add 2.1.1 version number swfiles/* - Removed; all release files are on FTP server now. - mxml.md5 moved to data/software.md5
This commit is contained in:
parent
7ec9c5924f
commit
0d83a3513c
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
//
|
||||
// "$Id: comment.php,v 1.7 2004/05/20 02:04:44 mike Exp $"
|
||||
// "$Id$"
|
||||
//
|
||||
// Comment and moderation interface for PHP pages...
|
||||
//
|
||||
@ -315,7 +315,7 @@ else
|
||||
|
||||
while ($row = db_next($result))
|
||||
{
|
||||
$create_date = date("M d, Y", $row['date']);
|
||||
$create_date = date("M d, Y", $row['create_date']);
|
||||
$create_user = sanitize_email($row['create_user']);
|
||||
$contents = sanitize_text($row['contents']);
|
||||
$location = str_replace("_", "?", $row['url']);
|
||||
@ -373,6 +373,6 @@ else
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: comment.php,v 1.7 2004/05/20 02:04:44 mike Exp $".
|
||||
// End of "$Id$".
|
||||
//
|
||||
?>
|
||||
|
6
www/data/software.md5
Normal file
6
www/data/software.md5
Normal file
@ -0,0 +1,6 @@
|
||||
e30ff88b15f74964e20d80c6577a1cb9 2.1 mxml/2.1/mxml-2.1-1.i386.rpm
|
||||
35f829a907c0319f83a3661591788ed3 2.1 mxml/2.1/mxml-2.1.tar.gz
|
||||
2d010aa0cfc1058aa48b3c03bc3781ec 2.0 mxml/2.0/mxml-2.0-1.i386.rpm
|
||||
bd9194cdbf717550a130789802e5b81c 2.0 mxml/2.0/mxml-2.0.tar.gz
|
||||
9dfb974bd31d60c97bfa394b7f6ca63e 1.3 mxml/1.3/mxml-1.3-1.i386.rpm
|
||||
9b116daa370bf647447d6ffe70e73534 1.3 mxml/1.3/mxml-1.3.tar.gz
|
@ -1,835 +0,0 @@
|
||||
<?php
|
||||
//
|
||||
// "$Id: newsgroups.php,v 1.1 2004/06/10 02:40:05 mike Exp $"
|
||||
//
|
||||
// Mini-XML newsgroup page...
|
||||
//
|
||||
|
||||
include_once "phplib/html.php";
|
||||
include_once "phplib/common.php";
|
||||
|
||||
// News server...
|
||||
$NNTPSERVER = "localhost";
|
||||
$NNTPPORT = 8119;
|
||||
//$NNTPSERVER = "news.easysw.com";
|
||||
//$NNTPPORT = 119;
|
||||
|
||||
// Cookie stuff...
|
||||
if (array_key_exists("SEARCH", $_POST))
|
||||
{
|
||||
$search = $_POST["SEARCH"];
|
||||
setcookie("SEARCH", "$search", 0, "/");
|
||||
}
|
||||
else if (array_key_exists("SEARCH", $_COOKIE))
|
||||
$search = $_COOKIE["SEARCH"];
|
||||
else
|
||||
$search = "";
|
||||
|
||||
if (array_key_exists("FROM", $_POST))
|
||||
{
|
||||
$from = $_POST["FROM"];
|
||||
setcookie("FROM", "$from", time() + 90 * 86400, "/");
|
||||
}
|
||||
else if ($LOGIN_EMAIL != "")
|
||||
{
|
||||
$from = $LOGIN_EMAIL;
|
||||
setcookie("FROM", "$from", time() + 90 * 86400, "/");
|
||||
}
|
||||
else if (array_key_exists("FROM", $_COOKIE))
|
||||
$from = $_COOKIE["FROM"];
|
||||
else
|
||||
$from = "Anonymous <anonymous@easysw.com>";
|
||||
|
||||
if ($from == "" || $from == "Anonymous")
|
||||
$from = "Anonymous <anonymous@easysw.com>";
|
||||
|
||||
|
||||
//
|
||||
// 'nntp_close()' - Close a news server thing...
|
||||
//
|
||||
|
||||
function
|
||||
nntp_close($stream) // I - Socket stream
|
||||
{
|
||||
nntp_command($stream, "QUIT", 205);
|
||||
|
||||
fclose($stream);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// 'nntp_command()' - Send a command and get the response...
|
||||
//
|
||||
|
||||
function // O - NNTP response
|
||||
nntp_command($stream, // I - Socket stream
|
||||
$command = "QUIT", // I - NNTP command
|
||||
$expect = 200) // I - Expected status
|
||||
|
||||
{
|
||||
// print("<p>nntp_command(stream=$stream, command='$command', expect=$expect)</p>\n");
|
||||
|
||||
fwrite($stream, "$command\r\n");
|
||||
|
||||
$status = fgets($stream, 1024);
|
||||
|
||||
// print("<p>status='$status'</p>\n");
|
||||
|
||||
if ((int)$status != $expect)
|
||||
{
|
||||
print("<p><b>Error:</b> $status</p>\n");
|
||||
return (NULL);
|
||||
}
|
||||
else
|
||||
return ($status);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// 'nntp_connect()' - Connect to the news server.
|
||||
//
|
||||
|
||||
function // O - Socket stream
|
||||
nntp_connect()
|
||||
{
|
||||
global $NNTPSERVER, $NNTPPORT;
|
||||
|
||||
|
||||
$stream = fsockopen($NNTPSERVER, $NNTPPORT, &$errno, &$errstr);
|
||||
|
||||
if ($stream)
|
||||
{
|
||||
if ($line = fgets($stream, 1024))
|
||||
{
|
||||
if ((int)$line != 200)
|
||||
{
|
||||
print("<p><b>Error:</b> $line</p>\n");
|
||||
fclose($stream);
|
||||
return (FALSE);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
print("<p><b>Error:</b> No response from NNTP server!</p>\n");
|
||||
fclose($stream);
|
||||
return (FALSE);
|
||||
}
|
||||
}
|
||||
else
|
||||
print("<p><b>Error:</b> $errstr ($errno)</p>\n");
|
||||
|
||||
return ($stream);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// 'nntp_search()' - Do a header search...
|
||||
//
|
||||
|
||||
function // O - Matching message headers...
|
||||
nntp_search($stream, // I - Socket stream
|
||||
$group, // I - NNTP group
|
||||
$search) // I - Search text
|
||||
{
|
||||
// print("<p>nntp_search(stream=$stream, group='$group', search='$search'</p>\n");
|
||||
|
||||
$status = nntp_command($stream, "GROUP $group", 211);
|
||||
if (!$status)
|
||||
return (NULL);
|
||||
|
||||
$fields = explode(" ", $status);
|
||||
$status = nntp_command($stream, "XOVER $fields[2]-$fields[3]", 224);
|
||||
if (!$status)
|
||||
return (NULL);
|
||||
|
||||
$words = explode(" ", $search);
|
||||
$num_matches = 0;
|
||||
$matches = NULL;
|
||||
|
||||
while ($line = fgets($stream, 1024))
|
||||
{
|
||||
$line = rtrim($line);
|
||||
|
||||
if ($line == ".")
|
||||
break;
|
||||
|
||||
if ($search == "")
|
||||
{
|
||||
// Return all matches...
|
||||
$matches[$num_matches] = $line;
|
||||
$num_matches ++;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Search for words...
|
||||
reset($words);
|
||||
|
||||
while (list($key, $word) = each($words))
|
||||
{
|
||||
if (stristr($line, $word))
|
||||
{
|
||||
$matches[$num_matches] = $line;
|
||||
$num_matches ++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// print("<p>num_matches=$num_matches</p>\n");
|
||||
|
||||
return ($matches);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// 'show_prevnext_page()' - Show the prev/next links for the messages list...
|
||||
//
|
||||
|
||||
function
|
||||
show_prevnext_page($group, // I - Group
|
||||
$group_filter, // I - Group filter
|
||||
$start, // I - Start message
|
||||
$end, // I - End message
|
||||
$count) // I - Number of messages
|
||||
{
|
||||
global $PHP_SELF, $PAGE_MAX;
|
||||
|
||||
|
||||
print("<p><table width='100%' border='0' cellpadding='0' cellspacing='0'>\n"
|
||||
."<tr><td width='25%'>");
|
||||
|
||||
if ($start > 1)
|
||||
{
|
||||
$i = $start - $PAGE_MAX;
|
||||
if ($i < 1)
|
||||
$i = 1;
|
||||
|
||||
$j = $i + $PAGE_MAX - 1;
|
||||
if ($j > $count)
|
||||
$j = $count;
|
||||
|
||||
html_start_links();
|
||||
html_link("Show Messages $i - $j", "$PHP_SELF?s$i+g$group+G$group_filter");
|
||||
html_end_links();
|
||||
}
|
||||
|
||||
print("</td><td align='center' width='50%'>");
|
||||
html_start_links();
|
||||
html_link("All Groups", "$PHP_SELF?G$group_filter");
|
||||
|
||||
if (!ereg(".*\.announce", $group) && !ereg(".*\.cvs", $group))
|
||||
html_link("New Message", "$PHP_SELF?s$i+g$group+G$group_filter+n");
|
||||
html_end_links();
|
||||
print("</td><td align='right' width='25%'>");
|
||||
|
||||
if ($end < $count)
|
||||
{
|
||||
$i = $start + $PAGE_MAX;
|
||||
$j = $i + $PAGE_MAX - 1;
|
||||
if ($j > $count)
|
||||
$j = $count;
|
||||
|
||||
html_start_links();
|
||||
html_link("Show Messages $i - $j", "$PHP_SELF?s$i+g$group+G$group_filter");
|
||||
}
|
||||
|
||||
print("</td></tr>\n"
|
||||
."</table></p>\n");
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// 'show_messages()' - Show messages in the named group...
|
||||
//
|
||||
|
||||
function
|
||||
show_messages($group, // I - Group
|
||||
$group_filter, // I - Group filter
|
||||
$start, // I - Start message
|
||||
$search) // I - Search string
|
||||
{
|
||||
global $PHP_SELF, $PAGE_MAX;
|
||||
|
||||
|
||||
// Figure out which messages to show...
|
||||
$error = "";
|
||||
|
||||
$stream = nntp_connect();
|
||||
$matches = nntp_search($stream, $group, $search);
|
||||
$count = count($matches);
|
||||
|
||||
nntp_close($stream);
|
||||
|
||||
if (!$matches)
|
||||
{
|
||||
$count = 0;
|
||||
$error = "No matches found for '" .
|
||||
htmlspecialchars($search, ENT_QUOTES) . "'...";
|
||||
}
|
||||
|
||||
if ($start == 0)
|
||||
$start = $count - 9;
|
||||
if ($start > ($count - $PAGE_MAX + 1))
|
||||
$start = $count - $PAGE_MAX + 1;
|
||||
if ($start < 1)
|
||||
$start = 1;
|
||||
|
||||
$end = $start + $PAGE_MAX - 1;
|
||||
if ($end > $count)
|
||||
$end = $count;
|
||||
|
||||
// Show the standard header...
|
||||
html_header("$group ($start - $end of $count)");
|
||||
|
||||
$temp = htmlspecialchars($search, ENT_QUOTES);
|
||||
print("<form method='post' action='$PHP_SELF?g$group+G$group_filter'>\n"
|
||||
."<p align='center'><input type='text' name='SEARCH' value='$temp' "
|
||||
."size='60'/><input type='submit' value='Search $group'/></p>\n"
|
||||
."</form>\n");
|
||||
|
||||
if ($error != "")
|
||||
print("<p align='center'><i>$error</i></p>\n");
|
||||
|
||||
show_prevnext_page($group, $group_filter, $start, $end, $count);
|
||||
|
||||
html_start_table(array("Subject", "Author", "Date"));
|
||||
|
||||
for ($i = $start; $i <= $end; $i ++)
|
||||
{
|
||||
$fields = explode("\t", $matches[$i - 1]);
|
||||
$msg = (int)$fields[0];
|
||||
$subject = htmlspecialchars($fields[1], ENT_QUOTES);
|
||||
$author = sanitize_email($fields[2]);
|
||||
$date = htmlspecialchars($fields[3], ENT_QUOTES);
|
||||
|
||||
html_start_row();
|
||||
print("<td><a href='$PHP_SELF?s$start+g$group+G$group_filter+v$i'>"
|
||||
."$subject</a></td>"
|
||||
."<td align='center'>$author</td>"
|
||||
."<td align='right'>$date</td>");
|
||||
html_end_row();
|
||||
}
|
||||
|
||||
html_end_table();
|
||||
|
||||
show_prevnext_page($group, $group_filter, $start, $end, $count);
|
||||
|
||||
html_footer();
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// 'show_groups()' - Show groups...
|
||||
//
|
||||
|
||||
function
|
||||
show_groups($group_filter, // I - Group filter
|
||||
$search) // I - Search string
|
||||
{
|
||||
global $PHP_SELF;
|
||||
|
||||
|
||||
html_header("Newsgroups");
|
||||
|
||||
// Figure out which messages to show...
|
||||
$stream = nntp_connect();
|
||||
|
||||
// Search stuff...
|
||||
print("<form method='post' action='$PHP_SELF?G$group_filter'>\n"
|
||||
."<p align='center'><input type='text' name='SEARCH' value='$search' "
|
||||
."size='60'/><input type='submit' value='Search All Groups'/></p>\n"
|
||||
."</form>\n");
|
||||
|
||||
// Show the standard header...
|
||||
html_start_table(array("Group", "Messages", ""));
|
||||
|
||||
$status = nntp_command($stream, "LIST", 215);
|
||||
$num_groups = 0;
|
||||
$groups = array();
|
||||
|
||||
if ($status)
|
||||
{
|
||||
while ($line = fgets($stream, 1024))
|
||||
{
|
||||
$line = rtrim($line);
|
||||
if ($line == ".")
|
||||
break;
|
||||
|
||||
$fields = explode(" ", $line);
|
||||
$groups[$num_groups] = $fields[0];
|
||||
$num_groups ++;
|
||||
}
|
||||
}
|
||||
|
||||
sort($groups);
|
||||
|
||||
while (list($key, $group) = each($groups))
|
||||
{
|
||||
if (ereg("(linuxprinting|private)\\..*", $group))
|
||||
continue;
|
||||
|
||||
if ($group_filter && !ereg("${group_filter}\\.*", $group))
|
||||
continue;
|
||||
|
||||
$status = nntp_command($stream, "GROUP $group", 211);
|
||||
if (!$status)
|
||||
continue;
|
||||
|
||||
$fields = explode(" ", $status);
|
||||
$total = (int)$fields[1];
|
||||
|
||||
if ($search != "")
|
||||
{
|
||||
$matches = nntp_search($stream, $group, $search);
|
||||
$count = count($matches);
|
||||
}
|
||||
else
|
||||
$count = $total;
|
||||
|
||||
html_start_row();
|
||||
print("<td align='center'>$group</td>"
|
||||
."<td align='center'>$count");
|
||||
|
||||
if ($search != "")
|
||||
print("/$total");
|
||||
|
||||
print("</td><td>");
|
||||
html_start_links();
|
||||
html_link("View", "$PHP_SELF?g$group+G$group_filter");
|
||||
if (!ereg(".*\.announce", $group) && !ereg(".*\.cvs", $group))
|
||||
html_link("New Message", "$PHP_SELF?g$group+G$group_filter+n");
|
||||
html_end_links();
|
||||
print("</td>");
|
||||
html_end_row();
|
||||
}
|
||||
|
||||
html_start_row("header");
|
||||
print("<th colspan='3'>Newsgroups and Mailing Lists</th>");
|
||||
html_end_row();
|
||||
|
||||
html_start_row();
|
||||
print("<td colspan='3'>"
|
||||
."<p>Point your news reader at <a href='news://news.easysw.com'>"
|
||||
."news.easysw.com</a> to view these groups directly.</p>\n"
|
||||
."<p>Go to <a href='http://lists.easysw.com/mailman/listinfo'>"
|
||||
."http://lists.easysw.com/mailman/listinfo</a> "
|
||||
."to subscribe to or unsubcribe from the mailing lists that mirror "
|
||||
."these groups.</p>"
|
||||
."</td>");
|
||||
html_end_row();
|
||||
html_end_table();
|
||||
|
||||
nntp_close($stream);
|
||||
|
||||
html_footer();
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// 'show_prevnext_msg()' - Show the prev/next links for the messages list...
|
||||
//
|
||||
|
||||
function
|
||||
show_prevnext_msg($group, // I - Group
|
||||
$group_filter, // I - Group filter
|
||||
$start, // I - Start message
|
||||
$count, // I - Number of messages
|
||||
$msg) // I - Current message
|
||||
{
|
||||
global $PHP_SELF;
|
||||
|
||||
|
||||
print("<p><table width='100%' border='0' cellpadding='0' cellspacing='0'>\n"
|
||||
."<tr><td width='25%'>");
|
||||
|
||||
if ($msg > 1)
|
||||
{
|
||||
$i = $msg - 1;
|
||||
|
||||
html_start_links();
|
||||
html_link("Previous Message", "$PHP_SELF?s$start+g$group+G$group_filter+v$i");
|
||||
html_end_links();
|
||||
}
|
||||
|
||||
print("</td><td align='center' width='50%'>");
|
||||
html_start_links();
|
||||
html_link("All Groups", "$PHP_SELF?G$group_filter");
|
||||
html_link("Back to $group", "$PHP_SELF?s$msg+g$group+G$group_filter");
|
||||
|
||||
if (!ereg(".*\.announce", $group) && !ereg(".*\.cvs", $group))
|
||||
{
|
||||
html_link("Reply", "$PHP_SELF?s$start+g$group+G$group_filter+r$msg");
|
||||
html_link("New Message", "$PHP_SELF?s$i+g$group+G$group_filter+n");
|
||||
}
|
||||
|
||||
html_end_links();
|
||||
|
||||
print("</td><td align='right' width='25%'>");
|
||||
|
||||
if ($msg < $count)
|
||||
{
|
||||
$i = $msg + 1;
|
||||
html_start_links();
|
||||
html_link("Next Message", "$PHP_SELF?s$start+g$group+G$group_filter+v$i");
|
||||
html_end_links();
|
||||
}
|
||||
|
||||
print("</td></tr>\n"
|
||||
."</table></p>\n");
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// 'show_message()' - Show a single message...
|
||||
//
|
||||
|
||||
function
|
||||
show_message($group, // I - Group
|
||||
$group_filter, // I - Group filter
|
||||
$start, // I - Start message
|
||||
$msg, // I - Current message
|
||||
$search) // I - Search string
|
||||
{
|
||||
global $PHP_SELF;
|
||||
|
||||
|
||||
// Figure out which messages to show...
|
||||
$stream = nntp_connect();
|
||||
$matches = nntp_search($stream, $group, $search);
|
||||
$count = count($matches);
|
||||
|
||||
if ($msg < 1 || $msg > $count)
|
||||
{
|
||||
nntp_close($stream);
|
||||
return;
|
||||
}
|
||||
|
||||
$fields = explode("\t", $matches[$msg - 1]);
|
||||
$msgnum = (int)$fields[0];
|
||||
$subject = str_replace(":", ":", htmlspecialchars($fields[1], ENT_QUOTES));
|
||||
$author = str_replace(":", ":", sanitize_email($fields[2]));
|
||||
$date = str_replace(":", ":", htmlspecialchars($fields[3], ENT_QUOTES));
|
||||
|
||||
$status = nntp_command($stream, "BODY $msgnum", 222);
|
||||
if (!$status)
|
||||
{
|
||||
nntp_close($stream);
|
||||
return;
|
||||
}
|
||||
|
||||
$body = "";
|
||||
while ($line = fgets($stream, 1024))
|
||||
{
|
||||
$line = rtrim($line);
|
||||
|
||||
if ($line == ".")
|
||||
break;
|
||||
|
||||
$body = $body . $line . "\n";
|
||||
}
|
||||
|
||||
nntp_close($stream);
|
||||
|
||||
$body = quote_text($body);
|
||||
|
||||
html_header("$subject");
|
||||
|
||||
show_prevnext_msg($group, $group_filter, $start, $count, $msg);
|
||||
|
||||
html_start_table(array($subject, $author, $date));
|
||||
html_start_row();
|
||||
print("<td colspan='3'><tt>$body</tt></td>");
|
||||
html_end_row();
|
||||
html_end_table();
|
||||
|
||||
show_prevnext_msg($group, $group_filter, $start, $count, $msg);
|
||||
|
||||
html_footer();
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// 'post_message()' - Post a message...
|
||||
//
|
||||
|
||||
function
|
||||
post_message($group, // I - Group
|
||||
$group_filter, // I - Group filter
|
||||
$start, // I - Start message
|
||||
$msg, // I - Current message
|
||||
$search) // I - Search string
|
||||
{
|
||||
global $PHP_SELF, $_POST;
|
||||
|
||||
|
||||
if (array_key_exists("FROM", $_POST))
|
||||
$from = $_POST["FROM"];
|
||||
else
|
||||
$from = "";
|
||||
|
||||
if (array_key_exists("SUBJECT", $_POST))
|
||||
$subject = $_POST["SUBJECT"];
|
||||
else
|
||||
$subject = "";
|
||||
|
||||
if (array_key_exists("BODY", $_POST))
|
||||
$body = $_POST["BODY"];
|
||||
else
|
||||
$body = "";
|
||||
|
||||
if (!validate_email($from) || $subject == "" || $body == "")
|
||||
{
|
||||
new_message($group, $group_filter, $start, $from, $subject, $body);
|
||||
return;
|
||||
}
|
||||
|
||||
$stream = nntp_connect();
|
||||
if (!$stream)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
$id = "";
|
||||
|
||||
if ($msg > 0)
|
||||
{
|
||||
$matches = nntp_search($stream, $group, $search);
|
||||
$count = count($matches);
|
||||
|
||||
if ($msg <= $count)
|
||||
{
|
||||
$fields = explode("\t", $matches[$msg - 1]);
|
||||
$id = $fields[4];
|
||||
}
|
||||
}
|
||||
|
||||
$status = nntp_command($stream, "POST", 340);
|
||||
|
||||
if (!$status)
|
||||
{
|
||||
nntp_close($stream);
|
||||
return;
|
||||
}
|
||||
|
||||
fwrite($stream, "From: $from\r\n");
|
||||
fwrite($stream, "Subject: $subject\r\n");
|
||||
fwrite($stream, "Newsgroups: $group\r\n");
|
||||
|
||||
if ($id != "")
|
||||
fwrite($stream, "In-Reply-To: $id\r\n");
|
||||
|
||||
fwrite($stream, "\r\n");
|
||||
|
||||
$lines = explode("\n", $body);
|
||||
$count = count($lines);
|
||||
|
||||
for ($i = 0; $i < $count; $i ++)
|
||||
{
|
||||
$line = rtrim($lines[$i]);
|
||||
|
||||
if ($line == ".")
|
||||
fwrite($stream, ". \r\n");
|
||||
else
|
||||
fwrite($stream, "$line\r\n");
|
||||
}
|
||||
|
||||
$status = nntp_command($stream, ".", 240);
|
||||
|
||||
if ($status)
|
||||
{
|
||||
if ($msg == 0)
|
||||
header("Location: $PHP_SELF?s$start+g$group+G$group_filter");
|
||||
else
|
||||
header("Location: $PHP_SELF?s$start+g$group+G$group_filter+v$msg");
|
||||
}
|
||||
|
||||
nntp_close($stream);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// 'reply_message()' - Reply to a message...
|
||||
//
|
||||
|
||||
function
|
||||
reply_message($group, // I - Group to reply to
|
||||
$group_filter, // I - Group filter
|
||||
$start, // I - First message in the display
|
||||
$msg, // I - Message to reply to
|
||||
$search, // I - Search string
|
||||
$sender) // I - Sender address
|
||||
{
|
||||
global $PHP_SELF;
|
||||
|
||||
|
||||
// Figure out which messages to show...
|
||||
$stream = nntp_connect();
|
||||
$matches = nntp_search($stream, $group, $search);
|
||||
$count = count($matches);
|
||||
|
||||
if ($msg < 1 || $msg > $count)
|
||||
{
|
||||
nntp_close($stream);
|
||||
return;
|
||||
}
|
||||
|
||||
$fields = explode("\t", $matches[$msg - 1]);
|
||||
$msgnum = (int)$fields[0];
|
||||
$subject = htmlspecialchars($fields[1], ENT_QUOTES);
|
||||
$author = sanitize_email($fields[2]);
|
||||
$date = htmlspecialchars($fields[3], ENT_QUOTES);
|
||||
|
||||
if (strncasecmp($subject, "re:", 3))
|
||||
$subject = "Re: " . $subject;
|
||||
|
||||
$status = nntp_command($stream, "BODY $msgnum", 222);
|
||||
if (!$status)
|
||||
{
|
||||
nntp_close($stream);
|
||||
return;
|
||||
}
|
||||
|
||||
$body = "";
|
||||
while ($line = fgets($stream, 1024))
|
||||
{
|
||||
$line = rtrim($line);
|
||||
|
||||
if ($line == ".")
|
||||
break;
|
||||
|
||||
$body = $body . "> " . $line . "\n";
|
||||
}
|
||||
|
||||
nntp_close($stream);
|
||||
|
||||
new_message($group, $group_filter, $start, $subject, $sender, $body);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// 'new_message()' - Post a new message...
|
||||
//
|
||||
|
||||
function
|
||||
new_message($group, // I - Group to post to
|
||||
$group_filter, // I - Group filter
|
||||
$start, // I - First message
|
||||
$subject, // I - Subject of message
|
||||
$sender, // I - Sender address
|
||||
$body) // I - Message body
|
||||
{
|
||||
global $PHP_SELF, $NNTPSPEC;
|
||||
|
||||
|
||||
$subject = htmlspecialchars($subject, ENT_QUOTES);
|
||||
$sender = htmlspecialchars($sender, ENT_QUOTES);
|
||||
$body = htmlspecialchars($body, ENT_QUOTES);
|
||||
|
||||
html_header("Post Message to $group");
|
||||
|
||||
html_start_links(1);
|
||||
html_link("All Groups", "$PHP_SELF?G$group_filter");
|
||||
html_link("Back to $group", "$PHP_SELF?s$start+g$group+G$group_filter");
|
||||
html_end_links(1);
|
||||
|
||||
print("<h2>Post Message to $group</h2>");
|
||||
|
||||
print("<form action='$PHP_SELF?s$start+g$group+G$group_filter+p0' method='POST'>\n");
|
||||
|
||||
print("<center><table width='100%' border='0' cellpadding='5' cellspacing='0'>\n");
|
||||
print("<tr><th align='right' valign='top'>Subject:</th>"
|
||||
."<td><input type='text' name='SUBJECT' value='$subject' size='40'/></td></tr>\n");
|
||||
|
||||
print("<tr><th align='right' valign='top'>From:</th>"
|
||||
."<td><input type='text' name='FROM' value='$sender' size='40'/></td></tr>\n");
|
||||
|
||||
print("<tr><th align='right' valign='top'>Body:</th>"
|
||||
."<td><textarea name='BODY' cols='72' rows='24'>$body</textarea></td></tr>\n");
|
||||
|
||||
print("<tr><th></th>"
|
||||
."<td><input type='submit' value='Post Message'/></td></tr>\n");
|
||||
print("</table></center>\n");
|
||||
|
||||
print("</form>\n");
|
||||
|
||||
html_footer();
|
||||
}
|
||||
|
||||
|
||||
// Parse command-line options...
|
||||
$start = 0;
|
||||
$group = "";
|
||||
$op = 'l';
|
||||
$msg = "";
|
||||
|
||||
for ($i = 0; $i < $argc; $i ++)
|
||||
{
|
||||
switch ($argv[$i][0])
|
||||
{
|
||||
case 'g' :
|
||||
$group = substr($argv[$i], 1);
|
||||
break;
|
||||
|
||||
case 'G' :
|
||||
$groups = substr($argv[$i], 1);
|
||||
break;
|
||||
|
||||
case 'n' :
|
||||
case 'p' :
|
||||
case 'r' :
|
||||
case 'v' :
|
||||
$op = $argv[$i][0];
|
||||
$msg = (int)substr($argv[$i], 1);
|
||||
break;
|
||||
|
||||
case 's' :
|
||||
$start = (int)substr($argv[$i], 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Now handle the request...
|
||||
switch ($op)
|
||||
{
|
||||
case 'l' : // List
|
||||
if ($group)
|
||||
show_messages($group, $PROJECT_MODULE, $start, $search);
|
||||
else
|
||||
show_groups($PROJECT_MODULE, $search);
|
||||
break;
|
||||
|
||||
case 'n' : // New message
|
||||
new_message($group, $PROJECT_MODULE, $start, "", $from, "");
|
||||
break;
|
||||
|
||||
case 'p' : // Post message
|
||||
if (ereg(".*\.announce", $group) || ereg(".*\.cvs", $group))
|
||||
{
|
||||
html_header("Newsgroup Posting Error");
|
||||
|
||||
print("<p>We are sorry, but we could not post your message for the "
|
||||
."following reason:\n"
|
||||
."<blockquote>Group $group is read-only.</blockquote>\n");
|
||||
|
||||
html_footer();
|
||||
|
||||
}
|
||||
else
|
||||
post_message($group, $PROJECT_MODULE, $start, $msg, $search);
|
||||
break;
|
||||
|
||||
case 'r' : // Reply message
|
||||
reply_message($group, $PROJECT_MODULE, $start, $msg, $search, $from);
|
||||
break;
|
||||
|
||||
case 'v' : // View message
|
||||
show_message($group, $PROJECT_MODULE, $start, $msg, $search);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// End of "$Id: newsgroups.php,v 1.1 2004/06/10 02:40:05 mike Exp $".
|
||||
//
|
||||
?>
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
//
|
||||
// "$Id: html.php,v 1.13 2004/06/10 02:40:05 mike Exp $"
|
||||
// "$Id$"
|
||||
//
|
||||
// PHP functions for standardized HTML output...
|
||||
//
|
||||
@ -57,7 +57,8 @@ $html_keywords = array(
|
||||
|
||||
function // O - User information
|
||||
html_header($title = "", // I - Additional document title
|
||||
$path = "") // I - Relative path to root
|
||||
$path = "", // I - Relative path to root
|
||||
$refresh = "") // I - Refresh URL
|
||||
{
|
||||
global $html_keywords, $argc, $argv, $PHP_SELF, $LOGIN_USER;
|
||||
|
||||
@ -87,6 +88,10 @@ html_header($title = "", // I - Additional document title
|
||||
."charset=iso-8859-1'/>\n"
|
||||
." <link rel='stylesheet' type='text/css' href='${path}style.css'/>\n");
|
||||
|
||||
// If refresh URL is specified, add the META tag...
|
||||
if ($refresh != "")
|
||||
print(" <meta http-equiv='refresh' content='3; $refresh'/>\n");
|
||||
|
||||
// Search engine keywords...
|
||||
reset($html_keywords);
|
||||
|
||||
@ -111,12 +116,10 @@ html_header($title = "", // I - Additional document title
|
||||
."alt='Mini-XML' align='middle'/> </td>"
|
||||
."<td width='100%'>[ <a href='${path}index.php'>Home</a> | "
|
||||
."<a href='${path}articles.php'>Articles</a> | "
|
||||
."<a href='${path}str.php'>Bugs & Features</a> | "
|
||||
."<a href='${path}documentation.php'>Documentation</a> | "
|
||||
."<a href='${path}software.php'>Download</a> | "
|
||||
."<a href='${path}links.php'>Links</a> | "
|
||||
."<a href='${path}newsgroups.php'>Newsgroups</a> | "
|
||||
."<a href='${path}poll.php'>Polls</a> | "
|
||||
."<a href='${path}str.php'>Support</a> ]</td>"
|
||||
."<a href='${path}links.php'>Links</a> ]</td>"
|
||||
."<td align='right'>[ ");
|
||||
|
||||
|
||||
|
254
www/software.php
254
www/software.php
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
//
|
||||
// "$Id: software.php,v 1.4 2004/05/19 22:45:23 mike Exp $"
|
||||
// "$Id$"
|
||||
//
|
||||
// Software download page.
|
||||
//
|
||||
@ -12,136 +12,194 @@
|
||||
include_once "phplib/html.php";
|
||||
|
||||
|
||||
// List of download servers...
|
||||
$sitelist = array(
|
||||
"http://ftp.easysw.com/pub" => "Oregon, USA via HTTP",
|
||||
// "ftp://ftp.easysw.com/pub" => "Oregon, USA via FTP",
|
||||
// "http://ftp2.easysw.com/pub" => "Maryland, USA via HTTP",
|
||||
"ftp://ftp2.easysw.com/pub" => "Maryland, USA via FTP",
|
||||
"ftp://ftp3.easysw.com/pub" => "California, USA via FTP",
|
||||
"http://ftp.funet.fi/pub/mirrors/ftp.easysw.com/pub" => "Espoo, Finland via HTTP",
|
||||
"ftp://ftp.funet.fi/pub/mirrors/ftp.easysw.com/pub" => "Espoo, Finland via FTP",
|
||||
);
|
||||
|
||||
|
||||
// Get the list of software files...
|
||||
$dir = opendir("swfiles");
|
||||
$fp = fopen("data/software.md5", "r");
|
||||
$files = array();
|
||||
|
||||
while ($file = readdir($dir))
|
||||
{
|
||||
if (fnmatch("*.tar.gz", $file) ||
|
||||
fnmatch("*.tar.bz2", $file))
|
||||
{
|
||||
// Add source file...
|
||||
$files[$file] = substr($file, 5, strpos($file, ".tar") - 5);
|
||||
}
|
||||
else if (fnmatch("*.rpm", $file) ||
|
||||
fnmatch("*.deb", $file) ||
|
||||
fnmatch("*.tgz", $file))
|
||||
{
|
||||
// Add binary file...
|
||||
$data = explode("-", $file);
|
||||
|
||||
$files[$file] = $data[1];
|
||||
}
|
||||
}
|
||||
|
||||
arsort($files);
|
||||
|
||||
closedir($dir);
|
||||
|
||||
// Read MD5 sums for each file...
|
||||
$fp = fopen("swfiles/mxml.md5", "r");
|
||||
$md5 = array();
|
||||
|
||||
while ($line = fgets($fp))
|
||||
{
|
||||
$data = explode(" ", trim($line));
|
||||
$md5[$data[2]] = $data[0];
|
||||
}
|
||||
|
||||
//print("<pre>md5 =\n");
|
||||
//print_r($md5);
|
||||
//print("</pre>\n");
|
||||
while ($line = fgets($fp, 255))
|
||||
$files[sizeof($files)] = trim($line);
|
||||
|
||||
fclose($fp);
|
||||
|
||||
// Show files...
|
||||
html_header("Download");
|
||||
|
||||
reset($files);
|
||||
|
||||
if ($argc >= 1)
|
||||
$firstversion = $argv[0];
|
||||
// Get form data, if any...
|
||||
if (array_key_exists("FILE", $_GET))
|
||||
$file = $_GET["FILE"];
|
||||
else
|
||||
$firstversion = current($files);
|
||||
$file = "";
|
||||
|
||||
if (array_key_exists("SITE", $_GET))
|
||||
{
|
||||
$site = $_GET["SITE"];
|
||||
setcookie("SITE", $site, time() + 90 * 86400, "/");
|
||||
}
|
||||
else if (array_key_exists("SITE", $_COOKIE) &&
|
||||
array_key_exists($_COOKIE["SITE"], $sitelist))
|
||||
$site = $_COOKIE["SITE"];
|
||||
else
|
||||
$site = "";
|
||||
|
||||
if (array_key_exists("VERSION", $_GET))
|
||||
$version = $_GET["VERSION"];
|
||||
else
|
||||
{
|
||||
$data = explode(" ", $files[0]);
|
||||
$version = $data[1];
|
||||
}
|
||||
|
||||
// Show the standard header...
|
||||
if ($site != "" && $file != "")
|
||||
html_header("Download", "", "$site/$file");
|
||||
else
|
||||
html_header("Download");
|
||||
|
||||
html_start_links(1);
|
||||
html_link("CVS", "#CVS");
|
||||
|
||||
$curversion = "";
|
||||
while (list($file, $version) = each($files))
|
||||
if ($version != $curversion)
|
||||
for ($i = 0; $i < sizeof($files); $i ++)
|
||||
{
|
||||
// Grab the data for the current file...
|
||||
$data = explode(" ", $files[$i]);
|
||||
$fversion = $data[1];
|
||||
|
||||
if ($fversion != $curversion)
|
||||
{
|
||||
$curversion = $version;
|
||||
html_link("v$version", "$PHP_SELF?$version");
|
||||
$curversion = $fversion;
|
||||
html_link("v$fversion", "$PHP_SELF?VERSION=$fversion");
|
||||
}
|
||||
}
|
||||
|
||||
html_link("Subversion", "$PHP_SELF#SVN");
|
||||
|
||||
html_end_links();
|
||||
|
||||
print("<h1>Download</h1>");
|
||||
print("<h1>Download</h1>\n");
|
||||
|
||||
html_start_table(array("Version", "Filename", "Size", "MD5 Sum"));
|
||||
|
||||
reset($files);
|
||||
$curversion = "";
|
||||
while (list($file, $version) = each($files))
|
||||
// Show files or sites...
|
||||
if ($file != "")
|
||||
{
|
||||
html_start_row();
|
||||
|
||||
if ($version == $firstversion)
|
||||
{
|
||||
$cs = "<th>";
|
||||
$ce = "</th>";
|
||||
}
|
||||
if ($site != "")
|
||||
print("<p>Your download should begin shortly. If not, please "
|
||||
."<a href='$site/$file'>click here</a> to download the file "
|
||||
."from the current mirror.</p>\n"
|
||||
."<h2>Change Mirror Site:</h2>\n");
|
||||
else
|
||||
print("<p>Please select a mirror site below to begin the download.</p>\n"
|
||||
."<h2>Select Mirror Site:</h2>\n");
|
||||
|
||||
print("<form action='$PHP_SELF' method='GET' name='download'>\n"
|
||||
."<input type='hidden' name='FILE' value='"
|
||||
. htmlspecialchars($file, ENT_QUOTES) . "'/>\n"
|
||||
."<input type='hidden' name='VERSION' value='"
|
||||
. htmlspecialchars($version, ENT_QUOTES) . "'/>\n");
|
||||
|
||||
if ($site == "")
|
||||
print("<input type='radio' name='SITE' value='' checked/>None<br />\n");
|
||||
|
||||
reset($sitelist);
|
||||
while (list($key, $val) = each($sitelist))
|
||||
{
|
||||
$cs = "<td align='center'>";
|
||||
$ce = "</td>";
|
||||
print("<input type='radio' name='SITE' value='$key' "
|
||||
."onClick='document.download.submit();'");
|
||||
if ($site == $key)
|
||||
print(" checked");
|
||||
print("/>$val<br />\n");
|
||||
}
|
||||
|
||||
if ($version != $curversion)
|
||||
if ($site != "")
|
||||
print("<input type='submit' value='Change Mirror Site'/>\n");
|
||||
else
|
||||
print("<input type='submit' value='Select Mirror Site'/>\n");
|
||||
|
||||
print("</form>\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
// Show files...
|
||||
print("<h2>Releases</h2>\n");
|
||||
|
||||
html_start_table(array("Version", "Filename", "Size", "MD5 Sum"));
|
||||
|
||||
$curversion = "";
|
||||
|
||||
for ($i = 0; $i < sizeof($files); $i ++)
|
||||
{
|
||||
if ($curversion != "")
|
||||
// Grab the data for the current file...
|
||||
$data = explode(" ", $files[$i]);
|
||||
$md5 = $data[0];
|
||||
$fversion = $data[1];
|
||||
$filename = $data[2];
|
||||
$basename = basename($filename);
|
||||
|
||||
html_start_row();
|
||||
|
||||
if ($fversion == $version)
|
||||
{
|
||||
print("<td colspan='4'></td>");
|
||||
html_end_row();
|
||||
html_start_row();
|
||||
$cs = "<th>";
|
||||
$ce = "</th>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$cs = "<td align='center'>";
|
||||
$ce = "</td>";
|
||||
}
|
||||
|
||||
$curversion = $version;
|
||||
print("$cs<a name='$version'>$version</a>$ce");
|
||||
if ($fversion != $curversion)
|
||||
{
|
||||
if ($curversion != "")
|
||||
{
|
||||
print("<td colspan='4'></td>");
|
||||
html_end_row();
|
||||
html_start_row();
|
||||
}
|
||||
|
||||
$curversion = $fversion;
|
||||
print("$cs<a name='$fversion'>$fversion</a>$ce");
|
||||
}
|
||||
else
|
||||
print("$cs$ce");
|
||||
|
||||
$kbytes = (int)((filesize("/home/ftp/pub/$filename") + 1023) / 1024);
|
||||
|
||||
print("$cs<a href='$PHP_SELF?VERSION=$version&FILE=$filename'>"
|
||||
."<tt>$basename</tt></a>$ce"
|
||||
."$cs${kbytes}k$ce"
|
||||
."$cs<tt>$md5</tt>$ce");
|
||||
|
||||
html_end_row();
|
||||
}
|
||||
else
|
||||
print("$cs$ce");
|
||||
|
||||
$kbytes = (int)((filesize("swfiles/$file") + 1023) / 1024);
|
||||
$filemd5 = $md5["$file"];
|
||||
html_end_table();
|
||||
|
||||
print("$cs<a href='swfiles/$file'><tt>$file</tt></a>$ce"
|
||||
."$cs${kbytes}k$ce"
|
||||
."$cs<tt>$filemd5</tt>$ce");
|
||||
|
||||
html_end_row();
|
||||
print("<h2><a name='SVN'>Subversion Access</a></h2>\n"
|
||||
."<p>The $PROJECT_NAME software is available via Subversion "
|
||||
."using the following URL:</p>\n"
|
||||
."<pre>\n"
|
||||
." <a href='http://svn.easysw.com/public/$PROJECT_MODULE/'>"
|
||||
."http://svn.easysw.com/public/$PROJECT_MODULE/</a>\n"
|
||||
."</pre>\n"
|
||||
."<p>The following command can be used to checkout the current "
|
||||
."$PROJECT_NAME source from Subversion:</p>\n"
|
||||
."<pre>\n"
|
||||
." <kbd>svn co http://svn.easysw.com/public/$PROJECT_MODULE/trunk/ $PROJECT_MODULE</kbd>\n"
|
||||
."</pre>\n");
|
||||
}
|
||||
|
||||
html_end_table();
|
||||
|
||||
print("<h2><a name='CVS'>CVS Access</a></h2>\n"
|
||||
."<p>The $PROJECT_NAME software is available via anonymous CVS "
|
||||
."using the following CVS root:</p>\n"
|
||||
."<pre>\n"
|
||||
." :pserver:anonymous@cvs.easysw.com:/home/anoncvs\n"
|
||||
."</pre>\n"
|
||||
."<p>The module name is <tt>$PROJECT_MODULE</tt>. The following "
|
||||
."command can be used to checkout the $PROJECT_NAME source from "
|
||||
."CVS:</p>\n"
|
||||
."<pre>\n"
|
||||
." <kbd>cvs -d:pserver:anonymous@cvs.easysw.com:/home/anoncvs get $PROJECT_MODULE</kbd>\n"
|
||||
."</pre>\n");
|
||||
|
||||
// Show the standard footer...
|
||||
html_footer();
|
||||
|
||||
//
|
||||
// End of "$Id: software.php,v 1.4 2004/05/19 22:45:23 mike Exp $".
|
||||
// End of "$Id$".
|
||||
//
|
||||
?>
|
||||
|
42
www/str.php
42
www/str.php
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
//
|
||||
// "$Id: str.php,v 1.16 2004/11/13 18:26:33 mike Exp $"
|
||||
// "$Id$"
|
||||
//
|
||||
// Software Trouble Report page...
|
||||
//
|
||||
@ -23,9 +23,8 @@ include_once "phplib/str.php";
|
||||
//
|
||||
|
||||
$messages = array(
|
||||
"Fixed in CVS" =>
|
||||
"Fixed in CVS - the anonymous CVS repository will be updated at "
|
||||
."midnight EST.",
|
||||
"Fixed in Repo" =>
|
||||
"Fixed in Subversion repository.",
|
||||
"Old STR" =>
|
||||
"This STR has not been updated by the submitter for two or more weeks "
|
||||
."and has been closed as required by the Mini-XML Configuration Management "
|
||||
@ -51,6 +50,7 @@ $subsystems = array(
|
||||
$versions = array(
|
||||
"CVS",
|
||||
"+2.2",
|
||||
"+2.1.1",
|
||||
"2.1",
|
||||
"2.0",
|
||||
"2.0rc1",
|
||||
@ -234,7 +234,7 @@ if ($argc)
|
||||
if ($op != 'L' && $op != 'M' && $op != 'T' && $op != 'F' &&
|
||||
$op != 'N' && $op != 'U' && $op != 'B')
|
||||
{
|
||||
html_header("STR Error");
|
||||
html_header("Bugs & Features Error");
|
||||
print("<p>Bad command '$op'!</p>\n");
|
||||
html_footer();
|
||||
exit();
|
||||
@ -242,7 +242,7 @@ if ($argc)
|
||||
|
||||
if (($op == 'M' || $op == 'B') && $LOGIN_LEVEL < AUTH_DEVEL)
|
||||
{
|
||||
html_header("STR Error");
|
||||
html_header("Bugs & Features Error");
|
||||
print("<p>The '$op' command is not available to you!</p>\n");
|
||||
html_footer();
|
||||
exit();
|
||||
@ -250,7 +250,7 @@ if ($argc)
|
||||
|
||||
if (($op == 'M' || $op == 'T' || $op == 'F') && !$id)
|
||||
{
|
||||
html_header("STR Error");
|
||||
html_header("Bugs & Features Error");
|
||||
print("<p>Command '$op' requires an STR number!</p>\n");
|
||||
html_footer();
|
||||
exit();
|
||||
@ -258,7 +258,7 @@ if ($argc)
|
||||
|
||||
if ($op == 'N' && $id)
|
||||
{
|
||||
html_header("STR Error");
|
||||
html_header("Bugs & Features Error");
|
||||
print("<p>Command '$op' cannot have an STR number!</p>\n");
|
||||
html_footer();
|
||||
exit();
|
||||
@ -297,7 +297,7 @@ if ($argc)
|
||||
$femail = (int)$option;
|
||||
break;
|
||||
default :
|
||||
html_header("STR Error");
|
||||
html_header("Bugs & Features Error");
|
||||
print("<p>Bad option '$argv[$i]'!</p>\n");
|
||||
html_footer();
|
||||
exit();
|
||||
@ -417,7 +417,7 @@ switch ($op)
|
||||
$row = db_next($result);
|
||||
|
||||
html_start_links(1);
|
||||
html_link("Return to Support", "$PHP_SELF?L$options");
|
||||
html_link("Return to Bugs & Features", "$PHP_SELF?L$options");
|
||||
|
||||
if ($row['status'] >= $STR_STATUS_ACTIVE)
|
||||
{
|
||||
@ -563,13 +563,13 @@ switch ($op)
|
||||
}
|
||||
else
|
||||
{
|
||||
html_header("Support");
|
||||
html_header("Bugs & Features");
|
||||
|
||||
html_start_links(1);
|
||||
html_link("Submit Support Request", "$PHP_SELF?N$options'");
|
||||
html_link("Submit Bug or Feature Request", "$PHP_SELF?N$options'");
|
||||
html_end_links();
|
||||
|
||||
print("<h1>Support</h1>\n");
|
||||
print("<h1>Bugs & Features</h1>\n");
|
||||
|
||||
print("<form method='POST' action='$PHP_SELF'><p align='center'>"
|
||||
."Search Words: <input type='text' size='60' name='SEARCH' value='$search'>"
|
||||
@ -1041,7 +1041,7 @@ switch ($op)
|
||||
html_header("Modify STR #$id");
|
||||
|
||||
html_start_links(1);
|
||||
html_link("Return to Support", "$PHP_SELF?L$options");
|
||||
html_link("Return to Bugs & Features", "$PHP_SELF?L$options");
|
||||
html_link("Return to STR #$id", "$PHP_SELF?L$id$options");
|
||||
html_link("Post Text", "$PHP_SELF?T$id$options");
|
||||
html_link("Post File", "$PHP_SELF?F$id$options");
|
||||
@ -1682,13 +1682,13 @@ switch ($op)
|
||||
}
|
||||
else
|
||||
{
|
||||
html_header("Submit Support Request");
|
||||
html_header("Submit Bug or Feature Request");
|
||||
|
||||
html_start_links(1);
|
||||
html_link("Return to Support", "$PHP_SELF?L$options");
|
||||
html_link("Return to Bugs & Features", "$PHP_SELF?L$options");
|
||||
html_end_links();
|
||||
|
||||
print("<h1>Submit Support Request</h1>\n");
|
||||
print("<h1>Submit Bug or Feature Request</h1>\n");
|
||||
|
||||
if ($REQUEST_METHOD == "POST")
|
||||
{
|
||||
@ -1818,7 +1818,7 @@ switch ($op)
|
||||
print("<input name='STRFILE' type='FILE'></td></tr>\n");
|
||||
|
||||
print("<tr><th align='center' colspan='2'>"
|
||||
."<input type='submit' value='Submit Support Request'></th></tr>\n");
|
||||
."<input type='submit' value='Submit Bug or Feature Request'></th></tr>\n");
|
||||
print("</table></p></form>\n");
|
||||
html_footer();
|
||||
}
|
||||
@ -1830,7 +1830,7 @@ switch ($op)
|
||||
|
||||
if ($REQUEST_METHOD != "POST")
|
||||
{
|
||||
html_header("STR Error");
|
||||
html_header("Bugs & Features Error");
|
||||
print("<p>The '$op' command requires a POST request!\n");
|
||||
html_footer();
|
||||
exit();
|
||||
@ -1842,7 +1842,7 @@ switch ($op)
|
||||
if (($notification != "ON" && $notification != "OFF") || $email == "" ||
|
||||
!validate_email($email))
|
||||
{
|
||||
html_header("STR Error");
|
||||
html_header("Bugs & Features Error");
|
||||
print("<p>Please press your browsers back button and enter a valid "
|
||||
."EMail address and choose whether to receive notification "
|
||||
."messages.</p>\n");
|
||||
@ -1898,6 +1898,6 @@ switch ($op)
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: str.php,v 1.16 2004/11/13 18:26:33 mike Exp $".
|
||||
// End of "$Id$".
|
||||
//
|
||||
?>
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,20 +0,0 @@
|
||||
2b55de728aa5e8c3d254bc192395b6b5 mxml-0.91.tar.gz
|
||||
24a043c32316c23da079fcc0e5a9ee5d mxml-0.92.tar.gz
|
||||
e52545d20d4713ed96054980efdfad9e mxml-0.93.tar.gz
|
||||
f5fe73468b143a0ba0a52cc3fb70d50d mxml-0.9.tar.gz
|
||||
fa81e0552c2296a9a96acab45ca40b97 mxml-1.0-1.i386.rpm
|
||||
84dcb43388c621d0622b07d773e9330d mxml-1.0.tar.gz
|
||||
707ccead0ba2e26828197760957a54b3 mxml-1.1.1-1.i386.rpm
|
||||
56743f9515038682101506b7d5147968 mxml-1.1-1.i386.rpm
|
||||
3529f8e70b1aa5e2f5de114cd58d63b8 mxml-1.1.1.tar.gz
|
||||
9e5d8f70186a5ad84034721582945e24 mxml-1.1.2-1.i386.rpm
|
||||
f77726908d86a167d3d63076b272dfcd mxml-1.1.2.tar.gz
|
||||
8e2376171e14c59394b0c2c06ec2b1bd mxml-1.1.tar.gz
|
||||
099d05a62278020189c258968aae7533 mxml-1.2-1.i386.rpm
|
||||
57720317e7e5ad4c91fb076cb52105ad mxml-1.2.tar.gz
|
||||
9dfb974bd31d60c97bfa394b7f6ca63e mxml-1.3-1.i386.rpm
|
||||
9b116daa370bf647447d6ffe70e73534 mxml-1.3.tar.gz
|
||||
2d010aa0cfc1058aa48b3c03bc3781ec mxml-2.0-1.i386.rpm
|
||||
bd9194cdbf717550a130789802e5b81c mxml-2.0.tar.gz
|
||||
e30ff88b15f74964e20d80c6577a1cb9 mxml-2.1-1.i386.rpm
|
||||
35f829a907c0319f83a3661591788ed3 mxml-2.1.tar.gz
|
Loading…
Reference in New Issue
Block a user