У меня есть 3 узла типа контента «mycontenttype». Я пытаюсь настроить сортируемую/страничную таблицу с ограничением в 10 элементов на странице.
В этом коде $nids возвращает только 3 узла. На самом деле я запускаю node_load_multiple($nids), а затем перебираю эти узлы, чтобы создать переменную $rows. Появляются только 3.
Проблема: пейджер отображает 4 страницы.
Ожидание: не должно быть рендеринга пейджера, потому что у меня нет 10 узлов в запросе или запросе подсчета.
Мы будем очень признательны за любое понимание.
<?php
function mymodule_create_a_pager_table() {
$query = db_select('node', 'n')->extend('PagerDefault')->extend('TableSort')->element('my_custom_id');
$query->fields('n', array('nid'));
$query->condition('n.type', 'mycontenttype');
$query->condition('n.status', 1);
$count_query = clone $query;
$query->setCountQuery($count_query);
$query->limit(10);
$header = array(array('data' => 'Title', 'sort' => 'asc', 'field' => 'n.title'), 'column 2', 'column 3');
$query->orderByHeader($header);
$nids = $query->execute()->fetchCol();
// ... building $rows array for display only here
$output = theme('table', array('header'=> $header, 'rows' => $rows));
$output .= theme('pager', array('element' => 'my_custom_id', 'quantity' => 10));
return $output;
}
?>
Вывод
Узел 1 Название | col2 значение | столбец3 знач.
Узел 2 Заголовок | col2 значение | столбец3 знач.
Узел 3 Заголовок | col2 значение | столбец3 знач.
1 2 3 4 следующая › последняя »