ВопросD7 - Pager в блоке (без views)

Приветствую.
Код выводит список нод по 4 на страницу с пагинатором.
Для анонимов всё OK.
Вопрос: как заставить pager выводится в блоке, когда юзер авторизован?

<?php
$header = array(
  array('data' => 'Заголовок', 'field' => 'title'),
  array('data' => 'Дата создания', 'field' => 'created'),
  array('data' => 'Тип', 'field' => 'type'),
);
 
$nodes = db_select('node', 'n')
  ->fields('n', array('title', 'created', 'type'))
  ->extend('PagerDefault')
  ->limit(4)
  ->extend('TableSort')
  ->orderByHeader($header)
  ->execute();
 
$rows = array();
foreach ($nodes as $node) {
  $rows[] = array(
    check_plain($node->title),
    format_date($node->created),
    $node->type
  );
}
 
$output = theme('table', array('header' => $header, 'rows' => $rows));
$output .= theme('pager');
echo $output;
?>

Комментарии

Аватар пользователя andypost
andypost написал:

Немного поправил код, пусть лучше будет более живой пример

/**
 * Implements hook_block_view()
 */
function custom_module_block_view($delta= '') {
 
  $header = array(
    array('data' => 'Заголовок', 'field' => 'title'),
    array('data' => 'Дата создания', 'field' => 'created', 'sort' => 'desc'),
    array('data' => 'Тип', 'field' => 'type'),
  );
 
  $nodes = db_select('node', 'n')
    ->fields('n', array('title', 'created', 'type'))
    ->extend('PagerDefault')
    ->limit(4)
    ->condition('status', 1, '=')
    ->extend('TableSort')
    ->orderByHeader($header)
    ->execute();
 
  $rows = array();
  foreach ($nodes as $node) {
    $rows[] = array(
      check_plain($node->title),
      format_date($node->created, 'short'),
      node_type_get_name($node->type),
    );
  }
 
  $block['subject'] = t('All posts');
 
  $block['content']['node_list'] = array(
    '#theme' => 'table',
    '#header' => $header,
    '#rows' => $rows,
    '#empty' => t('No Posts'),
  );
 
  $block['content']['node_pager'] = array(
    '#theme' => 'pager',
  );
 
  $block['content']['node_more'] = array(
    '#theme' => 'more_link',
    '#url' => '/node',
    '#title' => t('Read more'),
  );
  return $block;
}
23.06.2012 03:03

Комментировать