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') && $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 '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"); 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); } 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 { $query .= "$prefix$logic (title LIKE \"%$keyword%\"" ." 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 % $ARTICLE_PAGE_MAX); if ($index < 0) $index = 0; $start = $index + 1; $end = $index + $ARTICLE_PAGE_MAX; if ($end > $count) $end = $count; $prev = $index - $ARTICLE_PAGE_MAX; if ($prev < 0) $prev = 0; $next = $index + $ARTICLE_PAGE_MAX; print("

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

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

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

\n"); } html_start_table(array("ID","Title","Last Modified")); db_seek($result, $index); for ($i = 0; $i < $ARTICLE_PAGE_MAX && $row = db_next($result); $i ++) { html_start_row(); $id = $row['id']; print("" ."$id"); $temp = htmlspecialchars($row['title']); print("" ."$temp"); $temp = date("M d, Y", $row['modify_date']); print("" ."$temp"); html_end_row(); html_start_row(); $temp = htmlspecialchars($row['abstract']); print("$temp"); html_end_row(); } html_end_table(); if ($count > $ARTICLE_PAGE_MAX) { print("

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

\n"); } } 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$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"); $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); print("
" ."

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

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

\n"); if ($LOGIN_USER != "") { print("\n"); } else print("\n"); print("" ."\n"); print("" ."\n"); print("" ."\n"); print("\n"); print("
Published:"); select_is_published(); print("
Title:
Abstract:
Contents:
" ."

\n"); html_footer(); break; } // // End of "$Id: articles.php,v 1.3 2004/05/18 19:58:34 mike Exp $". // ?>