From 828f36cdf1ebbf2580eb00fdfbf55701e4f86156 Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Sun, 29 Apr 2001 10:03:21 +0000 Subject: - Addition: added a new, tiny forum module: I will use this forum module to develop and test the permission system along with the regular nodes. And hopefully, this forum module will grow into a very useable piece of code for drop.org. Requires a new SQL table "forum", see 2.00-to-x.xx.sql. - Removed 1 unused hook from page.module. - Removed 1 unused function from comment.inc. --- modules/forum.module | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 modules/forum.module (limited to 'modules/forum.module') diff --git a/modules/forum.module b/modules/forum.module new file mode 100644 index 000000000..e5500f7a5 --- /dev/null +++ b/modules/forum.module @@ -0,0 +1,97 @@ + "forum_type", + "page" => "forum_page", + "admin" => "forum_admin"); + +$format = array(0 => HTML, 1 => PHP, 2 => text); + +function forum_type() { + return array("forum", "forum"); +} + +function forum_status() { + return array(dumped, posted); +} + +function forum_form($edit = array()) { + global $format; + + $output .= "
\n"; + + $output .= "Subject:
\n"; + $output .= "

\n"; + + $output .= structure_form("forum", $edit); + + $output .= "Body:
\n"; + $output .= "

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

\n"; + + return $output; +} + +function forum_save($edit) { + global $status; + node_save(array_merge($edit, array(type => "forum", status => $status[posted]))); +} + +function forum_num_comments($nid) { + $value = db_fetch_object(db_query("SELECT COUNT(cid) AS count FROM comments WHERE lid = '$nid' AND pid != 0")); + return ($value) ? $value->count : 0; +} + +function forum_last_comment($nid) { + $value = db_fetch_object(db_query("SELECT timestamp FROM comments WHERE lid = '$nid' ORDER BY timestamp DESC LIMIT 1")); + return ($value) ? format_date($value->timestamp, "small") : " "; +} + +function forum_page() { + global $theme; + + $result = db_query("SELECT nid FROM node WHERE type = 'forum' ORDER BY title"); + + $output .= "\n"; + $output .= " "; + while ($node = db_fetch_object($result)) { + $node = node_get_object("nid", $node->nid); + $output .= " "; + } + $output .= "
". t("Forum") ."". t("Comments") ."". t("Last comment") ."
nid\">". check_output($node->title) ."
". check_output($node->body, 1) ."
". forum_num_comments($node->nid) ."". forum_last_comment($node->nid) ."
\n"; + + $theme->header(); + $theme->box(t("Discussion forum"), $output); + $theme->footer(); +} + +function forum_overview() { + return node_overview(array(0, "WHERE n.type = 'forum' ORDER BY n.title")); +} + +function forum_admin() { + global $id, $op, $edit, $type; + + print "add new forum | overview
\n"; + + $type = ($type ? $type : 0); + + switch ($op) { + case "add": + print forum_form(); + break; + case "edit": + print forum_form(node_get_array(nid, $id)); + break; + case "Save forum": + print status(forum_save($edit)); + // fall through: + default: + print forum_overview(); + } +} + +?> \ No newline at end of file -- cgit v1.2.3