Тема Drupal 7 ('' pager ') -> таблица get отображается, но без Pager? - PullRequest
1 голос
/ 08 марта 2012

У меня есть таблица с данными из базы данных, я хотел бы, чтобы у нее был пейджер, у меня есть весь код из примера (buildamodule.com) среди других сайтов, и моя таблица отображается, но это не так.сгенерировать пейджер, хотя у меня больше строк, чем предел:

enter image description here

функция:

function get_loyaltycodes(){
$headers = array(
    array(
        'data' => t('Code')
    ),
    array(
        'data' => t('Info')
    ),
    array(
        'data' => t('Points')
    ),
    array(
        'data' => t('Consumed by')
    ),
);
$limit = variable_get('codes_per_page',5);
$query = db_select('loyalty_codes','lc');
$query -> fields('lc',array('code','info','points','uid'))
       -> orderBy('lc.info','ASC')
       -> extend('PagerDefault')
       -> limit($limit);


 //to see all codes for a certain amount of points, just append the number of points to the URL    
 $arg = arg(2);
 if($arg != '' && is_numeric($arg))
 {
    $query->condition('points', $arg);
 }

// Fetch the result set.
 $result = $query->execute();
 $rows = array();
  // Loop through each item and add to the $rows array.
  foreach ($result as $row) {
    $rows[] = array(
        $row->code, 
        $row->info, 
        $row->points, 
        $row->uid, 
    );
  }

  // Format output.
  $output = theme('table', array('header' => $headers, 'rows' => $rows)) . theme('pager');

  return $output;

переменная $ limit установлена ​​в 5 вформа настроек, и в базе данных тоже 5.

Кто-нибудь, кто знает, почему пейджер не показывает?возможно что-то в форматировании с вывода?

Помощь очень ценится!

1 Ответ

5 голосов
/ 08 марта 2012

очевидно, я не могу войти в систему, так как я нахожусь за брандмауэром, в любом случае, я, кажется, исправил это, хотя глупая ошибка:

расширение ‘->extend(‘PagerDefault’) в запросе должно было бытьпервая функция в цепочке гирлянд.Если нет, то ошибки нет, но функция, кажется, не вызывается.

$query = db_select('loyalty_codes','lc')
        ->extend('PagerDefault')
        -> fields('lc',array('code','info','points','uid'))
        -> orderBy('lc.info','ASC')
        -> limit(5);//$limit);
...