"diary_page", "admin" => "diary_admin"); include "includes/theme.inc"; function diary_page_overview($num = 20) { global $theme, $user; $result = db_query("SELECT d.*, u.userid FROM diaries d LEFT JOIN users u ON d.author = u.id ORDER BY d.timestamp DESC LIMIT $num"); $output .= "

This part of the website is dedicated to providing easy to write and easy to read online diaries or journals filled with daily thoughts, poetry, boneless blather, spiritual theories, intimate details, valuable experiences, cynical rants, semi-coherent comments, writing experiments, artistic babblings, critics on actuality, fresh insights, diverse dreams, chronicles and general madness available for general human consumption.

"; while ($diary = db_fetch_object($result)) { if ($time != date("F jS", $diary->timestamp)) { $output .= "". date("l, F jS", $diary->timestamp) ."\n"; $time = date("F jS", $diary->timestamp); } $output .= "
\n"; $output .= "

$diary->userid wrote:

\n"; $output .= "
\n"; $output .= "

". check_output($diary->text, 1) ."

[ userid\">more ]

\n"; $output .= "
\n"; $output .= "
\n"; } $theme->header(); $theme->box("Online diary", $output); $theme->footer(); } function diary_page_entry($timestamp, $text, $id = 0) { if ($id) { $output .= "
\n"; $output .= "
". date("l, F jS", $timestamp) .":
\n"; $output .= "

[ edit ]

". check_output($text, 1) ."

\n"; $output .= "
\n"; } else { $output .= "
\n"; $output .= "
". date("l, F jS", $timestamp) .":
\n"; $output .= "

". check_output($text, 1) ."

\n"; $output .= "
\n"; } return $output; } function diary_page_display($username) { global $theme, $user; $result = db_query("SELECT d.*, u.userid FROM diaries d LEFT JOIN users u ON d.author = u.id WHERE u.userid = '$username' ORDER BY timestamp DESC"); if ($username == $user->userid) { $output .= diary_page_entry(time(), "Add new diary entry!

"); while ($diary = db_fetch_object($result)) $output .= diary_page_entry($diary->timestamp, $diary->text, $diary->id); } else { $output .= "

". format_username($username) ."'s diary:

\n"; while ($diary = db_fetch_object($result)) $output .= diary_page_entry($diary->timestamp, $diary->text); } $theme->header(); $theme->box("$username's online diary", $output); $theme->footer(); } function diary_page_add() { global $theme, $user, $allowed_html; $output .= "
\n"; $output .= "

\n"; $output .= " Enter new diary entry:
\n"; $output .= "
\n"; $output .= " Allowed HTML tags: ". htmlspecialchars($allowed_html) .".\n"; $output .= "

\n"; $output .= "

\n"; $output .= " \n"; $output .= "

\n"; $output .= "
\n"; $theme->header(); $theme->box("Online diary", $output); $theme->footer(); } function diary_page_edit($id) { global $theme, $user, $allowed_html; $result = db_query("SELECT * FROM diaries WHERE id = $id"); $diary = db_fetch_object($result); $output .= diary_page_entry($diary->timestamp, $diary->text); $output .= "
\n"; $output .= "

\n"; $output .= " Edit diary entry:
\n"; $output .= "
\n"; $output .= " Allowed HTML tags: ". htmlspecialchars($allowed_html) .".\n"; $output .= "

\n"; $output .= "

\n"; $output .= " id\">\n"; $output .= " timestamp\">\n"; $output .= " \n"; $output .= "

\n"; $output .= "
\n"; $theme->header(); $theme->box("Online diary", $output); $theme->footer(); } function diary_page_preview($text, $timestamp, $id = 0) { global $theme, $user, $allowed_html; $output .= diary_page_entry($timestamp, $text); $output .= "
\n"; $output .= "

\n"; $output .= " Preview diary entry:
\n"; $output .= "
\n"; $output .= " Allowed HTML tags: ". htmlspecialchars($allowed_html) .".\n"; $output .= "

\n"; $output .= "

\n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= "

\n"; $output .= "
\n"; $theme->header(); $theme->box("Online diary", $output); $theme->footer(); } function diary_page_submit($text, $id = 0) { global $user, $theme; if ($id) { watchdog("message", "old diary entry updated"); db_query("UPDATE diaries SET text = '". check_input($text) ."' WHERE id = $id"); } else { watchdog("diary", "new diary entry added"); db_query("INSERT INTO diaries (author, text, timestamp) VALUES ('$user->id', '". check_input($text) ."', '". time() ."')"); } header("Location: module.php?mod=diary&op=view&name=$user->userid"); } function diary_page() { global $op, $id, $name, $text, $timestamp; // Security check: if (strstr($id, " ") || strstr($name, " ")) { watchdog("error", "diary: attempt to provide malicious input through URI"); exit(); } switch($op) { case "add": diary_page_add(); break; case "edit": diary_page_edit($id); break; case "view": diary_page_display($name); break; case "Preview diary entry": if ($id) diary_page_preview($text, $timestamp, $id); else diary_page_preview($text, time()); break; case "Submit diary entry": if ($id) diary_page_submit($text, $id); else diary_page_submit($text); break; default: diary_page_overview(); } } function diary_admin_edit($id) { $result = db_query("SELECT d.*, u.userid FROM diaries d LEFT JOIN users u ON d.author = u.id WHERE d.id = $id"); $diary = db_fetch_object($result); $output .= "
\n"; $output .= "

\n"; $output .= " Author:
\n"; $output .= " ". format_username($diary->userid, 1) ."\n"; $output .= "

\n"; $output .= "

\n"; $output .= "Diary entry:
\n"; $output .= "
\n"; $output .= "

\n"; $output .= "

\n"; $output .= " \n"; $output .= "

\n"; $output .= "
\n"; print $output; } function diary_admin_save($id, $text) { db_query("UPDATE diaries SET text = '". check_input($text) ."' WHERE id = $id"); watchdog("message", "diary: modified entry #$id."); } function diary_admin_display($order = "date") { // Initialize variables: $fields = array("author" => "author", "date" => "timestamp DESC"); // Perform SQL query: $result = db_query("SELECT d.*, u.userid FROM diaries d LEFT JOIN users u ON u.id = d.author ORDER BY d.$fields[$order] LIMIT 50"); // Display stories: $output .= "\n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; $output .= " \n"; while ($diary = db_fetch_object($result)) { $output .= " \n"; } $output .= "
\n"; $output .= "
\n"; $output .= " \n"; $output .= " \n"; $output .= "
\n"; $output .= "
subjectauthoroperations
userid\">$diary->userid on ". format_date($diary->timestamp, "small") ."". format_username($diary->userid, 1) ."id\">edit
\n"; print $output; } function diary_admin() { global $op, $id, $text, $order; switch ($op) { case "edit": diary_admin_edit($id); break; case "Save diary entry": diary_admin_save($id, $text); diary_admin_edit($id); break; case "Update": diary_admin_display($order); break; default: diary_admin_display(); } } ?>