You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
mxml/www/articles.php

344 lines
8.9 KiB

<?php
//
// "$Id: articles.php,v 1.2 2004/05/18 12:02:02 mike Exp $"
//
// Web form for the article table...
//
//
// Include necessary headers...
//
include_once "phplib/html.php";
include_once "phplib/common.php";
// Get command-line options...
//
// Usage: article.php [operation]
//
// Operations:
//
// D# - Delete Article
// L = List all
// L# = List Article #
// M# = Modify Article #
// N = Create new Article
if ($argc)
{
$op = $argv[0][0];
$id = (int)substr($argv[0], 1);
if ($op != 'D' && $op != 'L' && $op != 'M' && $op != 'N')
{
html_header("Article Error");
print("<p>Bad command '$op'!\n");
html_footer();
exit();
}
if (($op == 'D' || $op == 'M') && !$id)
{
html_header("Article Error");
print("<p>Command '$op' requires an ID!\n");
html_footer();
exit();
}
if ($op == 'N' && $id)
{
html_header("Article Error");
print("<p>Command '$op' may not have an ID!\n");
html_footer();
exit();
}
}
else
{
$op = 'L';
$id = 0;
}
switch ($op)
{
case 'D' : // Delete Article
if ($REQUEST_METHOD == "POST")
{
db_query("DELETE FROM article WHERE id = $id");
header("Location: $PHP_SELF?L");
}
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);
html_header("Delete Article #$id");
html_start_links(1);
html_link("Return to Article List", "$PHP_SELF?L");
html_link("View Article #$id</A>", "$PHP_SELF?L$id");
html_link("Modify Article #$id</A>", "$PHP_SELF?M$id");
html_end_links();
print("<h1>Delete Article #$id</h1>\n");
print("<form method='post' action='$PHP_SELF?D$id'>"
."<p><table width='100%' cellpadding='5' cellspacing='0' border='0'>\n");
if (!$row['is_published'])
print("<tr><th align='center' colspan='2'>This Article is "
."currently hidden from public view.</td></tr>\n");
$temp = htmlspecialchars($row["title"]);
print("<tr><th align='right'>Title:</th><td class='left'>$temp</td></tr>\n");
$temp = htmlspecialchars($row["abstract"]);
print("<tr><th align='right'>Abstract:</th><td class='left'>$temp</td></tr>\n");
$temp = htmlspecialchars($row["contents"]);
print("<tr><th align='right'>Contents:</th><td class='left'>$temp</td></tr>\n");
print("<tr><th colspan='2'>"
."<input type='submit' value='Confirm Delete Article'></th></tr>\n");
print("</table></p></form>\n");
html_footer();
}
break;
case 'L' : // List (all) Article(s)
if ($id)
{
html_header("Article #$id");
$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);
html_start_links(1);
html_link("Return to Article List", "$PHP_SELF?L");
html_link("Modify Article</A>", "$PHP_SELF?M$id");
html_link("Delete Article #$id</A>", "$PHP_SELF?D$id");
html_end_links();
print("<h1>Article #$id</h1>\n");
print("<p><table width='100%' cellpadding='5' cellspacing='0' "
."border='0'>\n");
if (!$row['is_published'])
print("<tr><th align='center' colspan='2'>This Article is "
."currently hidden from public view.</td></tr>\n");
$temp = htmlspecialchars($row['title']);
print("<tr><th align='right'>Title:</th><td class='left'>$temp</td></tr>\n");
$temp = htmlspecialchars($row['abstract']);
print("<tr><th align='right'>Abstract:</th><td class='left'>$temp</td></tr>\n");
$temp = htmlspecialchars($row['contents']);
print("<tr><th align='right'>Contents:</th><td class='left'>$temp</td></tr>\n");
print("</table></p>\n");
db_free($result);
}
else
{
html_header("Article List");
html_start_links(1);
html_link("New Article", "$PHP_SELF?N");
html_end_links();
$result = db_query("SELECT * FROM article");
$count = db_count($result);
print("<h1>Article List</h1>\n");
if ($count == 0)
{
print("<p>No Articles found.</p>\n");
html_footer();
exit();
}
html_start_table(array("Title","Abstract","Contents"));
while ($row = db_next($result))
{
html_start_row();
$id = $row['id'];
$temp = htmlspecialchars($row['title']);
print("<td class='center'><a href='$PHP_SELF?L$id' "
."alt='Article #$id'>"
."$temp</a></td>");
$temp = htmlspecialchars($row['abstract']);
print("<td class='center'><a href='$PHP_SELF?L$id' "
."alt='Article #$id'>"
."$temp</a></td>");
$temp = htmlspecialchars($row['contents']);
print("<td class='center'><a href='$PHP_SELF?L$id' "
."alt='Article #$id'>"
."$temp</a></td>");
html_end_row();
}
html_end_table();
}
html_footer();
break;
case 'M' : // Modify Article
if ($REQUEST_METHOD == "POST")
{
$date = time();
$is_published = db_escape($_POST["IS_PUBLISHED"]);
$title = db_escape($_POST["TITLE"]);
$abstract = db_escape($_POST["ABSTRACT"]);
$contents = db_escape($_POST["CONTENTS"]);
db_query("UPDATE article SET "
."is_published = $is_published, "
."title = '$title', "
."abstract = '$abstract', "
."contents = '$contents', "
."modify_date = $date, "
."modify_user = '$LOGIN_USER' "
."WHERE id = $id");
header("Location: $PHP_SELF?L$id");
}
else
{
html_header("Modify Article #$id");
html_start_links(1);
html_link("Return to Article List", "$PHP_SELF?L");
html_link("Article #$id", "$PHP_SELF?L$id");
html_end_links();
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'>"
."<p><table width='100%' cellpadding='5' cellspacing='0' border='0'>\n");
print("<tr><th align='right'>Published:</th><td>");
select_is_published($row['is_published']);
print("</td></tr>\n");
$temp = htmlspecialchars($row['title'], ENT_QUOTES);
print("<tr><th align='right'>Title:</th>"
."<td><input type='text' name='TITLE' "
."value='$temp' size='40'></td></tr>\n");
$temp = htmlspecialchars($row['abstract'], ENT_QUOTES);
print("<tr><th align='right'>Abstract:</th>"
."<td><input type='text' name='ABSTRACT' "
."value='$temp' size='40'></td></tr>\n");
$temp = htmlspecialchars($row['contents'], ENT_QUOTES);
print("<tr><th align='right'>Contents:</th>"
."<td><textarea name='CONTENTS' "
."cols='80' rows='10' wrap='virtual'>"
."$temp</textarea></td></tr>\n");
print("<tr><th colspan='2'>"
."<input type='submit' value='Update Article'></th></tr>\n");
print("</table></p></form>\n");
html_footer();
}
break;
case 'N' : // Post new Article
if ($REQUEST_METHOD == "POST")
{
$date = time();
$is_published = db_escape($_POST["IS_PUBLISHED"]);
$title = db_escape($_POST["TITLE"]);
$abstract = db_escape($_POST["ABSTRACT"]);
$contents = db_escape($_POST["CONTENTS"]);
db_query("INSERT INTO article VALUES(NULL,"
."$is_published,"
."'$title',"
."'$abstract',"
."'$contents',"
."$date,'$LOGIN_USER',$date,'$LOGIN_USER')");
$id = db_insert_id();
header("Location: $PHP_SELF?L$id");
break;
}
html_header("New Article");
html_start_links(1);
html_link("Return to Article List", "$PHP_SELF?L");
html_end_links();
print("<h1>New Article</h1>\n");
print("<form method='post' action='$PHP_SELF?N'>"
."<p><table width='100%' cellpadding='5' cellspacing='0' border='0'>\n");
print("<tr><th align='right'>Published:</th><td>");
select_is_published();
print("</td></tr>\n");
print("<tr><th align='right'>Title:</th>"
."<td><input type='text' name='TITLE' "
."size='40'></td></tr>\n");
print("<tr><th align='right'>Abstract:</th>"
."<td><input type='text' name='ABSTRACT' "
."size='40'></td></tr>\n");
print("<tr><th align='right'>Contents:</th>"
."<td><textarea name='CONTENTS' "
."cols='80' rows='10' wrap='virtual'>"
."</textarea></td></tr>\n");
print("<tr><th colspan='2'>"
."<input type='submit' value='Create Article'></th></tr>\n");
print("</table></p></form>\n");
html_footer();
break;
}
//
// End of "$Id: articles.php,v 1.2 2004/05/18 12:02:02 mike Exp $".
//
?>