"personal blog"); return $info[$field]; } function blog_access($op, $node) { global $user; if ($op == "view") { return $node->nid && $node->status && !$node->moderate; } if ($op == "create") { return $user->uid; } if ($op == "update") { return user_access("administer nodes") || ($user->uid == $node->uid); } if ($op == "delete") { return user_access("administer nodes") || ($user->uid == $node->uid); } } function blog_help() { ?>

Drupal's blog module allows registered users to maintain an online blog or diary. It provides easy-to-write and easy-to-read online diaries or journals that can be 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 public consumption.

$uid, "status" => 1)); } else { $account = $user; } if (!$date) { $date = time(); } $result = db_query("SELECT n.nid, n.title, n.body, n.created, u.name, u.uid FROM blog b LEFT JOIN node n ON b.nid = n.nid LEFT JOIN users u ON n.uid = u.uid WHERE u.uid = '$uid' AND n.created > '". ($date - 2592000) ."' ORDER BY b.nid DESC LIMIT 15"); while ($blog = db_fetch_object($result)) { $items .= format_rss_item($blog->title, path_uri() ."node.php?id=$blog->nid", $blog->body); } $output .= "\n"; $output .= "\n"; $output .= "\n"; $output .= "\n"; $output .= format_rss_channel("$account->name's blog", path_uri() ."module.php?mod=blog&op=view&id=$account->uid", "$account->name's blog", $items); $output .= "\n"; header("Content-Type: text/xml"); print $output; } function blog_feed_last() { $result = db_query("SELECT n.nid, n.title, n.body, n.created, u.name, u.uid FROM blog b LEFT JOIN node n ON b.nid = n.nid LEFT JOIN users u ON n.uid = u.uid ORDER BY b.nid DESC LIMIT 15"); while ($blog = db_fetch_object($result)) { $items .= format_rss_item($blog->title, path_uri() ."module.php?mod=blog&op=view&id=$blog->nid", $blog->body); } $output .= "\n"; $output .= "\n"; $output .= format_rss_channel(variable_get("site_name", "drupal") .": user blogs", path_uri() ."module.php?mod=blog", "Recently updated blogs.", $items); $output .= "\n"; header("Content-Type: text/xml"); print $output; } function blog_page_user($uid = 0, $date = 0) { global $theme, $user; if ($uid) { $account = user_load(array("uid" => $uid, "status" => 1)); } else { $account = $user; } if (!$date) { $date = time(); } $result = db_query("SELECT nid FROM node WHERE type = 'blog' AND uid = '$account->uid' AND created <= '$date' AND created >= '". ($date - 2592000) ."' ORDER BY nid DESC"); $output .= ""; while ($node = db_fetch_object($result)) { $blog = node_load(array("nid" => $node->nid)); $links = array(); if ($date != date("dny", $blog->created)) { $date = date("dny", $blog->created); $output .= ""; } if ($user->uid && $user->uid == $uid) { $links[] = "nid\">". t("edit") .""; } if ($user->uid && user_access("post blogs")) { $links[] = "nid\">". t("blog it") .""; } if ($blog->comment) { $links[] = "nid\">". format_plural(node_get_comments($blog->nid), t("comment"), t("comments")) .""; } $output .= ""; $output .= ""; } $output .= "
uid&date=". mktime(23, 59, 59, date("n", $blog->created), date("d", $blog->created), date("Y", $blog->created)) ."\">". format_date($blog->created, custom, "d M Y") .":
". check_output($blog->title) ."
". $theme->links($links) ."
". check_output($blog->body, 1) ."

"; $output .= "uid\">image("xml.gif") ."\" width=\"36\" height=\"14\" align=\"right\" border=\"0\" />\n"; $theme->box(sprintf(t("%s's blog"), $account->name), $output, "main"); } function blog_page_last() { global $theme, $user; $result = db_query("SELECT nid FROM node WHERE type = 'blog' ORDER BY nid DESC LIMIT 20"); $output .= ""; while ($node = db_fetch_object($result)) { $blog = node_load(array("nid" => $node->nid)); $links = array(); $links[] = "uid\">". sprintf("%s's blog", $blog->name) .""; if ($blog->uid == $user->uid) { $links[] = "nid\">". t("edit") .""; } if ($user->uid && user_access("post blogs")) { $links[] = "nid\">". t("blog it") .""; } if ($blog->comment) { $links[] = "nid\">". format_plural(node_get_comments($blog->nid), t("comment"), t("comments")) .""; } $output .= ""; $output .= ""; } $output .= "
". check_output($blog->title) ."". $theme->links($links) ."
". check_output($blog->body, 1) ."

"; $output .= "image("xml.gif") ."\" width=\"36\" height=\"14\" align=\"right\" border=\"0\" />\n"; $theme->box(t("User blogs"), $output, "main"); } function blog_form($node, $error) { global $nid, $iid; if ($node->body) { if (count(explode(" ", $node->body)) < variable_get("minimum_node_size", 0)) { $error["body"] = "
". t("The body of your blog is too short.") ."
"; } } else { if ($nid && $blog = node_load(array("nid" => $nid))) { $node->body = "". $blog->body ." [uid&date=$blog->created\">$blog->name]"; } if ($iid && $item = db_fetch_object(db_query("SELECT i.*, f.title as ftitle, f.link as flink FROM item i, feed f WHERE i.iid = '". check_input($iid) ."' AND i.fid = f.fid"))) { $node->body = "link\">$item->title - ". check_output($item->description) ." [flink\">$item->ftitle]\n"; } } $output = form_textarea(t("Body"), "body", $node->body, 60, 15, $error["body"] ? $error["body"] : t("Allowed HTML tags") .": ". htmlspecialchars(variable_get("allowed_html", ""))); return $output; } function blog_save($node) { if ($node->nid) { return array(); } else { return array("promote" => 0, "moderate" => 0, "status" => 1); } } function blog_page() { global $theme, $id, $op, $date; if (user_access("access blogs")) { switch ($op) { case "feed": if ($id) { blog_feed_user($id, $date); } else { blog_feed_last(); } break; default: $theme->header(); if ($id) { blog_page_user($id, $date); } else { blog_page_last(); } $theme->footer(); } } else { $theme->header(); $theme->box(t("Access denied"), message_access()); $theme->footer(); } } function blog_link($type, $node = 0) { global $user; if ($type == "page" && user_access("access blogs")) { $links[] = "". t("user blogs") .""; } if ($type == "menu" && user_access("post blogs")) { $links[] = "". t("add blog entry") .""; $links[] = "uid\">". t("view your blog") .""; } if ($type == "node" && $node->type == "blog") { $links[] = "uid\">". strtr(t("%a's blog"), array("%a" => $node->name)) .""; } return $links ? $links : array(); } function blog_block() { global $user; $result = db_query("SELECT u.uid, u.name, n.created, n.title, n.nid FROM node n LEFT JOIN users u ON n.uid = u.uid WHERE n.type = 'blog' ORDER BY n.nid DESC LIMIT 10"); while ($node = db_fetch_object($result)) { $output .= "nid\">". check_output($node->title) ."
\n"; } $output .= "
". t("more") ."
"; $block[0]["subject"] = t("User blogs"); $block[0]["content"] = $output; $block[0]["info"] = t("User blogs"); $block[0]["link"] = "module.php?mod=blog"; return $block; } ?>