Drupal 7, Как изменить лимит пейджера? - PullRequest
0 голосов
/ 06 февраля 2012

Я бы хотел изменить ограничение по умолчанию для пейджеров в Drupal 7. Я провел некоторые исследования, но безуспешно.

Я знаю, что должен сделать это в файле template.php, но не знаю как.

Это комментарий: http://api.drupal.org/api/drupal/includes--pager.inc/function/theme_pager/6#comment-693 они показывают способ изменить пейджер, но когда я добавляю это в свой template.php, я получаю несколько ошибок, таких как:

Notice: Undefined index: < in theme_pager_previous() (regel 489 van /home/vhosts/rolandkedde.nl/subdomains/webshop/httpdocs/includes/pager.inc).
Notice: Undefined index: n in theme_pager_next() (regel 528 van /home/vhosts/rolandkedde.nl/subdomains/webshop/httpdocs/includes/pager.inc).
Notice: Undefined index: n in theme_pager_next() (regel 528 van /home/vhosts/rolandkedde.nl/subdomains/webshop/httpdocs/includes/pager.inc).
Notice: Undefined index: n in theme_pager_next() (regel 529 van /home/vhosts/rolandkedde.nl/subdomains/webshop/httpdocs/includes/pager.inc).
Notice: Undefined index: n in theme_pager_next() (regel 531 van /home/vhosts/rolandkedde.nl/subdomains/webshop/httpdocs/includes/pager.inc).
Recoverable fatal error: Argument 1 passed to drupal_get_query_parameters() must be an array, string given, called in /home/vhosts/rolandkedde.nl/subdomains/webshop/httpdocs/sites/all/themes/tao/template.php on line 402 and defined in drupal_get_query_parameters() (regel 408 van /home/vhosts/rolandkedde.nl/subdomains/webshop/httpdocs/includes/common.inc).

Я надеюсь, что вы, ребята, сможете рассказать мне, как это сделать / исправить.

PS. Извините за мой плохой английский.

1 Ответ

1 голос
/ 06 февраля 2012

Drupal 7

Похоже, для Drupal 7 единственный способ изменить ограничение - это установить его в своем запросе.

Например:

// Select nid from published nodes with 20 pager limit 
$query = db_select('node', 'n')
    ->condition('status', 1)
    ->extend('PagerDefault')
        ->limit(20)
    ->fields('n', array('nid'));

$results = $query->execute();

Drupal 6

Просто скопируйте стандартную theme_pager() функцию в ваш файл template.php с именем yourthemename_pager(), где yourthemename - это название вашей темы, и измените аргумент $limit на нужное вам число. .

Пример с ограничением до 20:

// In your case theme's name is "tao"
function tao_pager($tags = array(), $limit = 20, $element = 0, $parameters = array(), $quantity = 9) {
    global $pager_page_array, $pager_total;
    // all code of function
    // ....
}
...