"forum_page", "admin" => "forum_admin"); $format = array(0 => HTML, 1 => PHP, 2 => text); function forum_status() { return array(dumped, posted); } function forum_view($node) { global $theme; $output .= "

". t("Forum") ." / nid\">". check_output($node->title) .":

". check_output($node->body) ."

"; $theme->box(t("Discussion forum"), $output); } function forum_form($edit = array()) { global $format, $REQUEST_URI; $form .= form_textfield(t("Subject"), "title", $edit[title], 50, 64); $form .= structure_form("forum", $edit); $form .= form_textarea(t("Body"), "body", $edit[body], 50, 10); $form .= form_hidden("nid", $edit[nid]); $form .= form_submit(t("Submit")); return form($REQUEST_URI, $form); } 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'")); 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") ."". t("Moderators") ."
nid\">". check_output($node->title) ."
". check_output($node->body, 1) ."
". forum_num_comments($node->nid) ."". forum_last_comment($node->nid) ."". check_output($node->moderate) ."
\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; print "add new forum | overview
\n"; switch ($op) { case "add": print forum_form(); break; case "edit": print forum_form(node_get_array(nid, $id)); break; case t("Submit"): print status(forum_save($edit)); // fall through: default: print forum_overview(); } } ?>