Contributions API

Calling all Drupal developers!

Help us get this on the first page of Digg. DIGG NOW!

Modules in 6

trackback_block

Definition

trackback_block($op = 'list', $delta = 0, $edit = array())
contributions/trackback/trackback.module, line 408

Code

<?php
function trackback_block($op = 'list', $delta = 0, $edit = array()) {
  if ($op == 'list') {
    $blocks[0]['info'] = t('Recent trackbacks');
    if (variable_get('trackback_view', 0) == 2) {
      $blocks[1]['info'] = t('Trackbacks');
      $blocks[1]['cache'] = BLOCK_CACHE_PER_PAGE | BLOCK_CACHE_PER_ROLE;
    }
    return $blocks;
  }

  if ($delta == 0) {
    switch ($op) {
      case 'configure':
        $form['trackback_display_number'] = array(
          '#type' => 'select',
          '#title' => t('Number of trackbacks to display'),
          '#default_value' => variable_get('trackback_display_number', 10),
          '#options' => drupal_map_assoc(array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30)),
          '#description' => t('How many trackbacks are displayed in the recent trackbacks block')
        );
        return $form;

      case 'save':
        variable_set('trackback_display_number', $edit['trackback_display_number']);
        break;

      case 'view':
        $result = db_query_range('SELECT * FROM {trackback_received} WHERE status=1 ORDER BY created DESC', 0, variable_get('trackback_display_number', 10));
        $items = array();
        while ($tb = db_fetch_object($result)) {
          $items[] = _trackback_path($tb, truncate_utf8($tb->subject, 128, FALSE, TRUE)) .'<br />'. t('%time ago', array('%time' => format_interval(time() - $tb->created)));
        }
        $block['subject'] = t('Recent trackbacks');
        $block['content'] = theme('item_list', $items);
        return $block;
    }
  }
  else if ($op == 'view' && variable_get('trackback_view', 0) == 2) {
    if (arg(0) == 'node' && is_numeric(arg(1)) && is_null(arg(2))) {
      $node = node_load(arg(1));
      if (isset($node->can_receive) and node_access('view', $node) and $block['content'] = trackback_render($node)) {
        $block['subject'] = t('Trackbacks');
        return $block;
      }
    }
  }
}
?>