"diary_page", "block" => "diary_block", "help" => "diary_help", "user" => "diary_user", "menu" => "diary_menu", "admin" => "diary_admin", "export" => "diary_export"); include "includes/common.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 blabber, spiritual theories, intimate details, valuable experiences, cynical rants, semi-coherent comments, writing experiments, artistic babblings, critics on current facts, fresh insights, diverse dreams, chronicles and mumbling 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; $username = empty($username) ? $user->userid : $username; $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("Edit you 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("Edit your 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("Edit your 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_help() { ?>

Drupal's diary module allows registered users to maintain an online diary.

". (time() - 1209600) ." ORDER BY id DESC LIMIT 2"); while ($diary = db_fetch_object($result)) { $content .= "
". date("l, F jS", $diary->timestamp) .":

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

[ more ]

\n"; $diaries++; } $block["subject"] = "$username has posted ". format_plural($diaries, "diary entry", "diary entries") ." recently"; $block["content"] = $content; return $block; } } function diary_menu() { global $user; return array("edit your diary" => "module.php?mod=diary&op=add", "view your diary" => "module.php?mod=diary&op=view"); } function diary_block() { $result = db_query("SELECT u.userid, d.timestamp FROM diaries d LEFT JOIN users u ON d.author = u.id ORDER BY timestamp DESC LIMIT 10"); while ($diary = db_fetch_object($result)) { if ($time != date("F jS", $diary->timestamp)) { $content .= "

". date("l, M jS", $diary->timestamp) ."

\n"; $time = date("F jS", $diary->timestamp); } $content .= "
  • userid\">$diary->userid
  • \n"; } $block[0]["subject"] = "Recent diary entries"; $block[0]["content"] = $content; $block[0]["info"] = "Recent diary entries"; $block[0]["link"] = "module.php?mod=diary"; return $block; } 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(); } } function diary_export($uri) { if ($uri[2] == "diary") { print "TODO: export diary for user $uri[3]"; } } ?>