You are here

function nodereferrer_theme_formatter in NodeReferrer 7

Same name and namespace in other branches
  1. 6 nodereferrer.module \nodereferrer_theme_formatter()

Generic formatter function

4 calls to nodereferrer_theme_formatter()
theme_nodereferrer_formatter_default in ./nodereferrer.module
Theme functions for 'default' field formatter.
theme_nodereferrer_formatter_full in ./nodereferrer.module
Theme function for 'full' field formatter.
theme_nodereferrer_formatter_plain in ./nodereferrer.module
Theme function for 'plain' field formatter.
theme_nodereferrer_formatter_teaser in ./nodereferrer.module
Theme function for 'teaser' field formatter.

File

./nodereferrer.module, line 576
Defines a field type for backlinking referencing nodes.

Code

function nodereferrer_theme_formatter($formatter, $info) {
  $items = isset($info['#item']['items']) ? $info['#item']['items'] : array();
  $limit = isset($info['#item']['limit']) ? $info['#item']['limit'] : 0;
  $element = isset($info['#item']['element']) ? $info['#item']['element'] : array();
  $pager = '';
  if ($limit) {

    // Fake the values set by pager query...
    global $pager_page_array, $pager_total, $pager_total_items;
    $page = isset($_GET['page']) ? $_GET['page'] : '';

    // Convert comma-separated $page to an array, used by other functions.
    $pager_page_array = explode(',', $page);

    // We calculate the total of pages as ceil(items / limit).
    $pager_total_items[$element] = count($items);
    $pager_total[$element] = ceil($pager_total_items[$element] / $limit);
    $pager_page_array[$element] = max(0, min((int) $pager_page_array[$element], (int) $pager_total[$element] - 1));

    // only display the select elements.
    if (is_array($items)) {
      $items = array_slice($items, $pager_page_array[$element] * $limit, $limit);
    }
    $pager = theme('pager', array(), $limit, $element);
  }
  $themed_items = array();
  foreach ($items as $i) {
    $i['field'] = $info;

    // Add some extra information the themer might like to have
    $themed_items[] = theme('nodereferrer_field_' . $formatter, $i);
  }
  $out = theme('item_list', $themed_items) . $pager;
  return $out;
}