view new comments link in the user block, a user may quickly review all recent comments. When a user first arrives at the main tracker page, she sees all recent comments in reverse chronological order, grouped by post. In addition, a self-centered user may choose to display only his own comments.

"; return $output; } function tracker_system($field){ $system["description"] = t("Enables tracking of recent and new comments for users."); return $system[$field]; } function tracker_link($type) { if ($type == "menu.view" && user_access("access comments")) { $links[] = lm(t("view new comments"), array("mod" => "tracker"), "", array("title" => t("Display an overview of the recent comments."))); } return $links ? $links : array(); } function tracker_conf_options() { $period = array(3600 => format_interval(3600), 10800 => format_interval(10800), 21600 => format_interval(21600), 32400 => format_interval(32400), 43200 => format_interval(43200), 86400 => format_interval(86400), 172800 => format_interval(172800), 259200 => format_interval(259200), 604800 => format_interval(604800), 1209600 => format_interval(1209600), 2419200 => format_interval(2419200), 1000000000 => "All"); $output .= form_select("Show comments more recent than", "tracker_period", variable_get("tracker_period", 259200), $period, "Comments younger than this get displayed."); return $output; } function tracker_comments($id = 0) { $period = time() - variable_get("tracker_period", 259200); // all comments of the past 3 days if not configured to a different value if ($id) { $sresult = db_query("SELECT n.nid, n.title, COUNT(n.nid) AS comments, MAX(c.timestamp) AS last_comment FROM comments c LEFT JOIN node n ON c.nid = n.nid WHERE c.status = 0 AND c.timestamp > $period AND c.uid = '%s' GROUP BY n.nid, n.title ORDER BY last_comment DESC LIMIT 10", $id); } else { $sresult = db_query("SELECT n.nid, n.title, COUNT(n.nid) AS comments, MAX(c.timestamp) AS last_comment FROM comments c LEFT JOIN node n ON c.nid = n.nid WHERE c.status = 0 AND c.timestamp > $period GROUP BY n.nid, n.title ORDER BY last_comment DESC LIMIT 10"); } while ($node = db_fetch_object($sresult)) { $output .= format_plural($node->comments, "comment", "comments") ." ". t("attached to node") ." ". l(check_output($node->title), array("id" => $node->nid)) .":\n"; if ($id) { $cresult = db_query("SELECT c.*, u.name FROM comments c LEFT JOIN users u ON c.uid = u.uid WHERE c.timestamp > $period AND c.uid = '%d' AND c.nid = '%d' ORDER BY cid DESC", $id, $node->nid); } else { $cresult = db_query("SELECT c.*, u.name FROM comments c LEFT JOIN users u ON c.uid = u.uid WHERE c.timestamp > $period AND c.nid = '%d' ORDER BY cid DESC", $node->nid); } $output .= "\n"; } return $output; } function tracker_menu() { global $user; $links[] = lm(t("your recent comments"), array("mod" => "tracker", "id" => $user->uid), "", array("title" => t("Display an overview of your recent comments."))); $links[] = lm(t("all recent comments"), array("mod" => "tracker"), "", array("title" => t("Display an overview of all the recent comments."))); return "
". implode(" · ", $links) ."
"; } function tracker_page() { global $theme, $id, $user; if (user_access("access comments")) { if ($id == $user->uid) { $theme->header(t("Your recent comments")); $theme->box(t("Tracker"), tracker_menu()); $theme->box(t("Your recent comments"), tracker_comments($id)); $theme->footer(); } else if ($id) { $account = user_load(array("uid" => $id)); $theme->header(t("%u's recent comments", array("%u" => $account->name))); $theme->box(t("Tracker"), tracker_menu()); $theme->box(t("%u's recent comments", array("%u" => $account->name)), tracker_comments($id)); $theme->footer(); } else { $theme->header(t("All recent comments")); $theme->box(t("Tracker"), tracker_menu()); $theme->box(t("All recent comments"), tracker_comments()); $theme->footer(); } } } function tracker_user($type, &$edit, &$user) { switch ($type) { case "view_public": case "view_private": if (user_access("access comments")) { return form_item(t("Comments"), lm(t("view recent comments"), array("mod" => "tracker", "id" => $user->uid), "", array("title" => t("View recent comments.")))); } } } ?>