У меня есть 3 узла типа контента 'mycontenttype'. Я пытаюсь настроить сортируемую таблицу с ограничением в 10 элементов на странице.
В этом коде $ nids возвращает только 3 узла. На самом деле я запускаю node_load_multiple ($ nids), затем перебираю эти узлы, чтобы построить переменную $ row. Только 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 val | col3 val
Узел 2 Заголовок | col2 val | col3 val
Узел 3 Заголовок | col2 val | col3 val
1 2 3 4 следующая ›последняя»