You are here

function custom_pagers_block in Custom Pagers 6

Same name and namespace in other branches
  1. 5 custom_pagers.module \custom_pagers_block()

Implementation of hook_block().

Generates a block with a pager for the current node.

File

./custom_pagers.module, line 105
Allows administrators to define context-sensitive previous/next pagers for any node type.

Code

function custom_pagers_block($op = 'list', $delta = 0) {
  if ($op == 'list') {
    $pagers = _custom_pagers_load_all_pagers();
    foreach ($pagers as $pager) {
      if ($pager->position == 'block') {
        $blocks[$pager->pid]['info'] = $pager->title;
      }
    }
    return $blocks;
  }
  else {
    if ($op == 'view' && arg(0) == 'node' && ($node = menu_get_object())) {
      $pagers = _custom_pagers_load_all_pagers();
      if ($pager = $pagers[$delta]) {
        if ($pager->position == 'block' && _custom_pagers_visibility($pager, $node)) {
          $nav_array = custom_pager_build_nav($pager, $node);
          if ($nav_array['current_index'] != -1) {
            if (module_exists('token')) {
              $block['subject'] = token_replace($pager->title, 'node', $node);
            }
            else {
              $block['subject'] = $pager->title;
            }
            $block['content'] = theme('custom_pager', $nav_array, $node, $pager, 'block');
            return $block;
          }
        }
      }
    }
  }
}