Bad command '$op'!\n"); html_footer(); exit(); } if (($op == 'D' || $op == 'M') && !$id) { html_header("Article Error"); print("

Command '$op' requires an ID!\n"); html_footer(); exit(); } if (($op == 'D' || $op == 'M' && $op != 'B') && $LOGIN_USER == "") { html_header("Article Error"); print("

Command '$op' requires a login!\n"); html_footer(); exit(); } if ($op == 'N' && $id) { html_header("Article Error"); print("

Command '$op' may not have an ID!\n"); html_footer(); exit(); } for ($i = 1; $i < $argc; $i ++) { $option = substr($argv[$i], 1); switch ($argv[$i][0]) { case 'Q' : // Set search text $search = $option; $i ++; while ($i < $argc) { $search .= " $argv[$i]"; $i ++; } break; case 'I' : // Set first STR $index = (int)$option; if ($index < 0) $index = 0; break; default : html_header("Article Error"); print("

Bad option '$argv[$i]'!

\n"); html_footer(); exit(); break; } } } else { $op = 'L'; $id = 0; } if ($REQUEST_METHOD == "POST") { if (array_key_exists("SEARCH", $_POST)) $search = $_POST["SEARCH"]; } $options = "+I$index+Q" . urlencode($search); 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 if ($REQUEST_METHOD == "POST") { db_query("DELETE FROM article WHERE id = $id"); header("Location: $PHP_SELF?L$options"); } else { $result = db_query("SELECT * FROM article WHERE id = $id"); if (db_count($result) != 1) { print("

Error: Article #$id was not found!

\n"); html_footer(); exit(); } $row = db_next($result); html_header("Delete Article #$id"); html_start_links(1); html_link("Return to Articles", "$PHP_SELF?L$options"); html_link("View Article #$id", "$PHP_SELF?L$id$options"); html_link("Modify Article #$id", "$PHP_SELF?M$id$options"); html_end_links(); print("

Delete Article #$id

\n"); print("
" ."

\n"); if (!$row['is_published']) print("\n"); $temp = htmlspecialchars($row["title"]); print("\n"); $temp = htmlspecialchars($row["abstract"]); print("\n"); $temp = htmlspecialchars($row["contents"]); print("\n"); print("\n"); print("
This Article is " ."currently hidden from public view.
Title:$temp
Abstract:$temp
Contents:$temp
" ."

\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("

Error: Article #$id was not found!

\n"); html_footer(); exit(); } $row = db_next($result); html_start_links(1); html_link("Return to Articles", "$PHP_SELF?L$options"); html_link("Show Comments", "#_USER_COMMENTS"); if ($LOGIN_USER) { html_link("Modify Article", "$PHP_SELF?M$id$options"); html_link("Delete Article #$id", "$PHP_SELF?D$id$options"); } html_end_links(); print("

Article #$id

\n"); print("

\n"); if (!$row['is_published']) print("\n"); $temp = htmlspecialchars($row['title']); print("\n"); $temp = htmlspecialchars($row['abstract']); print("\n"); $temp = format_text($row['contents']); print("\n"); print("
This Article is " ."currently hidden from public view.
Title:$temp
Abstract:$temp
Contents:$temp

\n"); db_free($result); print("
\n" ."

Comments " ."[ " ."Add Comment ]

\n"); show_comments("articles.php_L$id"); } else { html_header("Articles"); html_start_links(1); html_link("Post New Article", "$PHP_SELF?N$options"); html_end_links(); print("

Articles

\n"); print("

" ."Search Words:  " ."

\n"); print("
\n"); $query = ""; $prefix = "WHERE "; if (!$LOGIN_USER) { $query .= "${prefix}is_published = 1"; $prefix = " AND "; } if ($search) { $search_string = str_replace("'", " ", $search); $search_string = str_replace("\"", " ", $search_string); $search_string = str_replace("\\", " ", $search_string); $search_string = str_replace("%20", " ", $search_string); $search_string = str_replace("%27", " ", $search_string); $search_string = str_replace(" ", " ", $search_string); $search_words = explode(' ', $search_string); // Loop through the array of words, adding them to the $query .= "${prefix}("; $prefix = ""; $next = " OR"; $logic = ""; reset($search_words); while ($keyword = current($search_words)) { next($search_words); $keyword = db_escape(ltrim(rtrim($keyword))); if (strcasecmp($keyword, 'or') == 0) { $next = ' OR'; if ($prefix != '') $prefix = ' OR'; } else if (strcasecmp($keyword, 'and') == 0) { $next = ' AND'; if ($prefix != '') $prefix = ' AND'; } else if (strcasecmp($keyword, 'not') == 0) { $logic = ' NOT'; } else { if ($keyword == (int)$keyword) $idsearch = " OR id = " . (int)$keyword; else $idsearch = ""; $query .= "$prefix$logic (title LIKE \"%$keyword%\"$idsearch" ." OR abstract LIKE \"%$keyword%\"" ." OR contents LIKE \"%$keyword%\")"; $prefix = $next; $logic = ''; } } $query .= ")"; } $result = db_query("SELECT * FROM article $query " ."ORDER BY modify_date"); $count = db_count($result); if ($count == 0) { print("

No Articles found.

\n"); html_footer(); exit(); } if ($index >= $count) $index = $count - ($count % $PAGE_MAX); if ($index < 0) $index = 0; $start = $index + 1; $end = $index + $PAGE_MAX; if ($end > $count) $end = $count; $prev = $index - $PAGE_MAX; if ($prev < 0) $prev = 0; $next = $index + $PAGE_MAX; print("

$count article(s) found, showing $start to $end:

\n"); if ($LOGIN_USER) print("
\n"); if ($count > $PAGE_MAX) { print("

\n"); print("\n"); print("
"); if ($index > 0) print("[ Previous $PAGE_MAX ]"); print(""); if ($end < $count) { $next_count = min($PAGE_MAX, $count - $end); print("[ Next $next_count ]"); } print("

\n"); } html_start_table(array("ID","Title","Last Modified", "Comment(s)")); db_seek($result, $index); for ($i = 0; $i < $PAGE_MAX && $row = db_next($result); $i ++) { html_start_row(); $id = $row['id']; $link = ""; print(""); if ($LOGIN_USER) print(""); print("$link$id"); $temp = htmlspecialchars($row['title']); if ($row['is_published'] == 0) $temp .= " Private"; print("$link$temp"); $temp = date("M d, Y", $row['modify_date']); print("$link$temp"); $count = count_comments("articles.php_L$id"); print("$link$count"); html_end_row(); html_start_row(); $temp = htmlspecialchars($row['abstract']); print("$temp"); html_end_row(); } if ($LOGIN_USER) { html_start_row("header"); print(" 
Published: "); select_is_published(); print("\n"); html_end_row(); } html_end_table(); if ($count > $PAGE_MAX) { print("

\n"); print("\n"); print("
"); if ($index > 0) print("[ Previous $PAGE_MAX ]"); print(""); if ($end < $count) { $next_count = min($PAGE_MAX, $count - $end); print("[ Next $next_count ]"); } print("

\n"); } } html_footer(); break; case 'M' : // Modify Article if ($REQUEST_METHOD == "POST") { if (array_key_exists("IS_PUBLISHED", $_POST)) $is_published = (int)$_POST["IS_PUBLISHED"]; else $is_published = 0; 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("

Error: Article #$id was not found!

\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 " ."is_published = $is_published, " ."title = '$title', " ."abstract = '$abstract', " ."contents = '$contents', " ."modify_date = $modify_date, " ."modify_user = '$LOGIN_USER' " ."WHERE id = $id"); header("Location: $PHP_SELF?L$id$options"); } else { html_header("Modify Article #$id"); html_start_links(1); html_link("Return to Articles", "$PHP_SELF?L$options"); html_link("Article #$id", "$PHP_SELF?L$id$options"); html_end_links(); print("

Modify Article #$id

\n"); print("" ."

\n"); print("\n"); $temp = htmlspecialchars($title, ENT_QUOTES); print("" ."\n"); $temp = htmlspecialchars($abstract, ENT_QUOTES); print("" ."\n"); $temp = htmlspecialchars($contents, ENT_QUOTES); print("" ."\n"); print("\n"); print("
Published:"); select_is_published($is_published); print("
Title:
Abstract:
Contents:
" ."

\n"); html_footer(); } break; case 'N' : // Post new Article if ($REQUEST_METHOD == "POST") { if (array_key_exists("IS_PUBLISHED", $_POST)) $is_published = (int)$_POST["IS_PUBLISHED"]; else $is_published = 0; 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," ."$is_published,'$title','$abstract','$contents'," ."$create_date,'$create_user',$create_date,'$create_user')"); $id = db_insert_id(); header("Location: $PHP_SELF?L$id$options"); break; } html_header("Post New Article"); html_start_links(1); html_link("Return to Articles", "$PHP_SELF?L$options"); html_end_links(); print("

Post New Article

\n"); print("

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. Thank you for supporting $PROJECT!

\n" ."
\n"); print("
" ."

\n"); if ($LOGIN_USER != "") { print("\n"); } else print("\n"); $title = htmlspecialchars($title, ENT_QUOTES); print("" ."\n"); $abstract = htmlspecialchars($abstract, ENT_QUOTES); print("" ."\n"); $author = htmlspecialchars($author, ENT_QUOTES); print("" ."\n"); $contents = htmlspecialchars($contents, ENT_QUOTES); print("" ."\n"); print("\n"); print("
Published:"); select_is_published($is_published); print("
Title:
Abstract:
Author:
Contents:\n" ."

The contents of the article may contain the following " ."HTML elements: A, B, BLOCKQUOTE, " ."CODE, EM, H1, H2, " ."H3, H4, H5, H6, I, " ."IMG, LI, OL, P, PRE, " ."TT, U, UL

" ."

\n"); html_footer(); break; } // // End of "$Id: articles.php,v 1.7 2004/05/19 03:26:36 mike Exp $". // ?>