Как вывести пагинатор в блоке

Главные вкладки

Аватар пользователя vic vic 4 июля 2011 в 7:30

Доброго всем дня!

Написал блок, который должен выводить на странице просмотра группы (og) все ноды, которые принадлежат этой группе. Причем выводить с разбивкой на страницы по 10 нод.
Но оказалось что пагинатор не выводиться в блоке.

Вот код блока

<?php
function site_block_view($delta '') {
  
$block = array();

  switch (

$delta) {
    
// Дискуссии (на странице просмотра сообщества)
    
case 'site_group_discussion':
      
$query = new EntityFieldQuery;
      
$result $query
        
->entityCondition('entity_type''node')
        ->
entityCondition('bundle', array('blog''recipe'), 'IN')
        ->
propertyCondition('status'1)
        ->
propertyOrderBy('created''DESC')
        ->
pager(10)
      ->
execute();
      
$node_list = array();
      if (!empty(
$result['node'])) {
        
$nodes entity_load('node'array_keys($result['node']));
        foreach (
$nodes as $node$node_list[] = $node;
      }
            
      
$block['subject'] = 'Дискуссии';
      
$block['content'] = theme('site_group_discussion', array('node_list' => $node_list)).theme('pager');
      break;
    
  }
  return 
$block;
?>

Т.е. такая строчка "theme('pager')" не добавляет пвгинатор в конец блока.
Как сделать блок с пагинатором? Может какие параметры использовать?
Почитал http://api.drupal.org/api/drupal/includes--pager.inc/function/theme_pager/7
Но пока ничего не выходит.

Комментарии

Аватар пользователя vic vic 5 июля 2011 в 6:47

Выяснилось, что для анонимного пользователя и для не администратора пагинатор успешно отображается.
А для админа и супперпользователя его нет.

Очередной глюк друпал 7 или тонкая фича?

Аватар пользователя vic vic 5 июля 2011 в 10:46

"Vydrin_AP" wrote:
Посмотрите фаербагом - может какой-то элемент (наподобии admin menu) сдвигает верстку и пагинатор сдвигается вниз.

Да, я это проверял. Ни строчки html-кода от пагинатора не присутствует.

Аватар пользователя bodro bodro 5 июля 2011 в 12:00

В 7ке принято использовать RenderAPI, т.е. всместо

<?php

$block

['content'] = theme('site_group_discussion', array('node_list' => $node_list)).theme('pager');

?>

стоит писать

<?php

$block

['content'] =  array( 
    
'items' => array('#theme' => 'site_group_discussion''#node_list' => $node_list),
    
'pager' => array('#theme' => 'pager'),
);

?>