Implementation of hook_link().
File
- modules/
forum.module, line 368 - Enable threaded discussions about general topics.
Code
function forum_link($type, $node = 0, $main = 0) {
global $user;
$links = array();
if (!$main && $type == 'node' && $node->type == 'forum') {
// get previous and next topic
$sql = "SELECT n.nid, n.title, n.sticky, l.comment_count, l.last_comment_timestamp FROM {node} n INNER JOIN {node_comment_statistics} l ON n.nid = l.nid INNER JOIN {term_node} r ON n.nid = r.nid AND r.tid = %d WHERE n.status = 1 AND n.type = 'forum' ORDER BY n.sticky DESC, " . _forum_get_topic_order_sql(variable_get('forum_order', 1));
$sql = db_rewrite_sql($sql);
$result = db_query($sql, $node->tid);
while ($topic = db_fetch_object($result)) {
if ($stop == 1) {
$next = new StdClass();
$next->nid = $topic->nid;
$next->title = $topic->title;
break;
}
if ($topic->nid == $node->nid) {
$stop = 1;
}
else {
$prev = new StdClass();
$prev->nid = $topic->nid;
$prev->title = $topic->title;
}
}
if ($prev) {
$links[] = l(t('previous forum topic'), "node/{$prev->nid}", array(
'title' => check_plain($prev->title),
));
}
if ($next) {
$links[] = l(t('next forum topic'), "node/{$next->nid}", array(
'title' => check_plain($next->title),
));
}
}
return $links;
}