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;
}