Newer
Older
// $Id$
/**
* Implementation of hook_help().
*/
function tracker_help($section) {

Dries Buytaert
committed
$output = '<p>'. t('The tracker module displays the most recently added or updated content to the website allowing users to see the most recent contributions. The tracker module provides user level tracking for those who like to follow the contributions of particular authors.') .'</p>';
$output .= '<p>'. t('The "recent posts" page is available via a link in the navigation menu block and contains a reverse chronological list of new and recently-updated content. The table displays the content type, the title, the author\'s name, how many comments that item has received, and when it was last updated. Updates include any changes to the text, either by the original author or someone else, as well as any new comments added to an item. To use the tracker module to <em>watch</em> for a user\'s updated content, click on that user\'s profile, then the <em>track</em> tab.') .'</p>';
$output .= t('<p>You can</p>
<ul>
<li>view the <a href="%tracker">most recent posts</a>.</li>
<li>view <a href="%profile">user profiles</a> and select the track tab.</li>
<li>not administer this module.</li>
</ul>
', array('%tracker' => url('tracker'), '%profile' => url('profile')));

Dries Buytaert
committed
$output .= '<p>'. t('For more information please read the configuration and customization handbook <a href="%tracker">Tracker page</a>.', array('%tracker' => 'http://drupal.org/handbook/modules/tracker/')) .'</p>';

Dries Buytaert
committed
return $output;
return t('Enables tracking of recent posts for users.');
if ($may_cache) {
$items[] = array('path' => 'tracker', 'title' => t('recent posts'),
'callback' => 'tracker_page', 'access' => user_access('access content'),
'weight' => 1);
if ($user->uid) {
$items[] = array('path' => 'tracker/all', 'title' => t('all recent posts'),
'type' => MENU_DEFAULT_LOCAL_TASK);
$items[] = array('path' => 'tracker/'. $user->uid, 'title' => t('my recent posts'),
'type' => MENU_LOCAL_TASK);
}
$items[] = array('path' => 'user/'. arg(1) .'/track', 'title' => t('track'),
'callback' => 'tracker_track_user', 'access' => user_access('access content'),

Dries Buytaert
committed
'type' => MENU_IS_LOCAL_TASK);
$items[] = array('path' => 'user/'. arg(1) .'/track/posts', 'title' => t('track posts'),
'type' => MENU_DEFAULT_LOCAL_TASK);
/**
* Menu callback. Prints a listing of active nodes on the site.
*/
function tracker_track_user() {
if ($account = user_load(array('uid' => arg(1)))) {
drupal_set_title($account->name);

Dries Buytaert
committed
return tracker_page($account->uid);
/**
* Menu callback. Prints a listing of active nodes on the site.
*/
function tracker_page($uid = 0) {
if ($uid) {

Dries Buytaert
committed
$sql = 'SELECT DISTINCT(n.nid), n.title, n.type, n.changed, n.uid, u.name, l.last_comment_timestamp AS last_post, l.comment_count FROM {node} n INNER JOIN {node_comment_statistics} l ON n.nid = l.nid INNER JOIN {users} u ON n.uid = u.uid LEFT JOIN {comments} c ON n.nid = c.nid AND (c.status = %d OR c.status IS NULL) WHERE n.status = 1 AND (n.uid = %d OR c.uid = %d) ORDER BY last_post DESC';
$sql = db_rewrite_sql($sql);

Dries Buytaert
committed
$sql_count = 'SELECT COUNT(DISTINCT(n.nid)) FROM {node} n LEFT JOIN {comments} c ON n.nid = c.nid AND (c.status = %d OR c.status IS NULL) WHERE n.status = 1 AND (n.uid = %d OR c.uid = %d)';
$sql_count = db_rewrite_sql($sql_count);

Dries Buytaert
committed
$result = pager_query($sql, 25, 0, $sql_count, COMMENT_PUBLISHED, $uid, $uid);
$sql = 'SELECT DISTINCT(n.nid), n.title, n.type, n.changed, n.uid, u.name, l.last_comment_timestamp AS last_post, l.comment_count FROM {node} n INNER JOIN {users} u ON n.uid = u.uid INNER JOIN {node_comment_statistics} l ON n.nid = l.nid WHERE n.status = 1 ORDER BY last_post DESC';
$sql = db_rewrite_sql($sql);
$sql_count = 'SELECT COUNT(n.nid) FROM {node} n WHERE n.status = 1';
$sql_count = db_rewrite_sql($sql_count);
$result = pager_query($sql, 25, 0, $sql_count);
while ($node = db_fetch_object($result)) {
// Determine the number of comments:

Dries Buytaert
committed
if (module_exist('comment') && $node->comment_count) {
$comments = $node->comment_count;
$comments .= l(format_plural($new, '1 new', '%count new'), "node/$node->nid", NULL, NULL, 'new');
node_get_name($node->type),

Dries Buytaert
committed
l($node->title, "node/$node->nid") .' '. theme('mark', node_mark($node->nid, $node->changed)),

Dries Buytaert
committed
theme('username', $node),
t('%time ago', array('%time' => format_interval(time() - $node->last_post)))
$header = array(t('Type'), t('Post'), t('Author'), t('Replies'), t('Last post'));
$output = '<div id="tracker">';
$output .= theme('table', $header, $rows);
$output .= theme('pager', NULL, 25, 0);