forum_link

Definition

forum_link($type, $node = 0, $main = 0)
modules/forum.module, line 368

Description

Implementation of hook_link().

Code

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

Drupal is a registered trademark of Dries Buytaert.