78 lines
3.3 KiB
Plaintext
78 lines
3.3 KiB
Plaintext
<?php
|
|
// $Id$
|
|
|
|
function tracker_help() {
|
|
$output .= "The tracker module is a handy module for displaying the most recent comments happenning all over your web site. By following the <i>view new comments</i> 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.</p>";
|
|
return $output;
|
|
}
|
|
|
|
function tracker_link($type) {
|
|
|
|
if ($type == "menu.view") {
|
|
$links[] = "<a href=\"module.php?mod=tracker\" title=\"". t("Display an overview of the recent comments.") ."\">". t("view new comments") ."</a>";
|
|
}
|
|
|
|
return $links ? $links : array();
|
|
}
|
|
|
|
function tracker_comments($id = 0) {
|
|
global $theme, $user;
|
|
|
|
$period = time() - 259200; // all comments of the past 3 days
|
|
|
|
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.timestamp > $period AND c.uid = '". check_input($id) ."' GROUP BY n.nid, n.title DESC ORDER BY last_comment DESC LIMIT 10");
|
|
}
|
|
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.timestamp > $period GROUP BY n.nid, n.title DESC ORDER BY last_comment DESC LIMIT 10");
|
|
}
|
|
|
|
while ($node = db_fetch_object($sresult)) {
|
|
$output .= format_plural($node->comments, "comment", "comments") ." ". t("attached to node") ." <a href=\"node.php?id=$node->nid\">". check_output($node->title) ."</a>:\n";
|
|
|
|
if ($id) {
|
|
$cresult = db_query("SELECT * FROM comments WHERE timestamp > $period AND uid = '". check_input($id) ."' AND nid = '$node->nid' ORDER BY cid DESC");
|
|
}
|
|
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 = '$node->nid' ORDER BY c.cid DESC");
|
|
}
|
|
|
|
$output .= "<ul>";
|
|
while ($comment = db_fetch_object($cresult)) {
|
|
$output .= " <li><a href=\"node.php?id=$node->nid&cid=$comment->cid&pid=$comment->pid#$comment->cid\">". check_output($comment->subject) ."</a> by <a href=\"module.php?mod=user&op=view&id=$comment->uid\">". check_output($comment->name) ."</a> (". t("replies") .": ". comment_num_replies($comment->cid) .") ". (comment_is_new($comment) ? "<span style=\"color: red;\">*</span>" : "") ."</li>\n";
|
|
}
|
|
$output .= " </ul>\n";
|
|
}
|
|
|
|
return $output;
|
|
}
|
|
|
|
function tracker_menu() {
|
|
global $user;
|
|
|
|
$links[] = "<a href=\"module.php?mod=tracker&id=$user->uid\" title=\"". t("Display an overview of your recent comments.") ."\">your recent comments</a>";
|
|
$links[] = "<a href=\"module.php?mod=tracker\" title=\"". t("Display an overview of all the recent comments.") ."\">all recent comments</a>";
|
|
|
|
return "<div align=\"center\">". implode(" · ", $links) ."</div>";
|
|
}
|
|
|
|
|
|
function tracker_page() {
|
|
global $theme, $id;
|
|
|
|
$theme->header();
|
|
|
|
$theme->box(t("Tracker"), tracker_menu());
|
|
|
|
if ($id) {
|
|
$theme->box(t("Your recent comments"), tracker_comments($id));
|
|
}
|
|
else {
|
|
$theme->box(t("All recent comments"), tracker_comments());
|
|
}
|
|
|
|
$theme->footer();
|
|
}
|
|
|
|
?>
|