diff --git "a/C:\\Documents and Settings\\Administrator\\Desktop\\Patches\\pager-39954-50.patch" "b/C:\\Documents and Settings\\Administrator\\Desktop\\Patches\\pager-39954-52.patch" index 2918047..4420c45 100644 --- "a/C:\\Documents and Settings\\Administrator\\Desktop\\Patches\\pager-39954-50.patch" +++ "b/C:\\Documents and Settings\\Administrator\\Desktop\\Patches\\pager-39954-52.patch" @@ -1,12 +1,12 @@ diff --git a/core/includes/pager.inc b/core/includes/pager.inc -index c579e7e..66e141a 100644 +index c579e7e..aea6091 100644 --- a/core/includes/pager.inc +++ b/core/includes/pager.inc @@ -10,6 +10,11 @@ use Drupal\Core\Database\Query\SelectInterface; */ /** -+ * The amount of items per page to show in pagers. ++ * The number of items per page to show in pagers. + */ +define('PAGER_ITEMS', 50); + @@ -34,7 +34,7 @@ index c579e7e..66e141a 100644 return; } + // A zero limit means we use the default limit. -+ else if (empty($this->limit)) { ++ elseif (empty($this->limit)) { + $this->limit = variable_get('pager_items', PAGER_ITEMS); + } $this->ensureElement(); @@ -50,9 +50,9 @@ index c579e7e..66e141a 100644 * @param $limit - * An integer specifying the number of elements per page. If passed a false - * value (FALSE, 0, NULL), the pager is disabled. -+ * An integer specifying the number of elements per page. If passed a 0 -+ * the configured default number of items is used. If passed a NULL or -+ * FALSE, the pager is disabled. ++ * An integer specifying the number of elements per page. If 0, the default ++ * from the 'pager_items' configuration variable is used. If NULL or FALSE, ++ * the pager is disabled. */ - public function limit($limit = 10) { + public function limit($limit = 0) { @@ -68,10 +68,10 @@ index c579e7e..66e141a 100644 * @defgroup pagerpieces Pager pieces * @{ diff --git a/core/modules/node/node.admin.inc b/core/modules/node/node.admin.inc -index e5d6a15..9e4f927 100644 +index ac18da7..db1f4e5 100644 --- a/core/modules/node/node.admin.inc +++ b/core/modules/node/node.admin.inc -@@ -468,8 +468,8 @@ function node_admin_nodes() { +@@ -467,8 +467,8 @@ function node_admin_nodes() { } $nids = $query ->fields('n',array('nid')) @@ -82,65 +82,96 @@ index e5d6a15..9e4f927 100644 ->fetchCol(); $nodes = node_load_multiple($nids); diff --git a/core/modules/system/system.admin.inc b/core/modules/system/system.admin.inc -index a45a0e3..71474ec 100644 +index 978b0f4..5106fb1 100644 --- a/core/modules/system/system.admin.inc +++ b/core/modules/system/system.admin.inc -@@ -1612,6 +1612,44 @@ function system_run_cron_submit($form, &$form_state) { +@@ -6,6 +6,26 @@ + */ + + /** ++ * The minimum number of items allowed per page in pagers. ++ */ ++const PAGER_ITEMS_MIN = 1; ++ ++/** ++ * The recommended minimum number of items allowed per page in pagers. ++ */ ++const PAGER_ITEMS_LOW = 10; ++ ++/** ++ * The recommended maximum number of items allowed per page in pagers. ++ */ ++const PAGER_ITEMS_HIGH = 200; ++ ++/** ++ * The maximum number of items allowed per page in pagers. ++ */ ++const PAGER_ITEMS_MAX = 1000; ++ ++/** + * Menu callback; Provide the administration overview page. + */ + function system_admin_config_page() { +@@ -1613,6 +1633,48 @@ function system_run_cron_submit($form, &$form_state) { } /** -+ * Form builder; Pager form. ++ * Form constructor for the pager settings form. + * -+ * @ingroup forms + * @see system_settings_form() ++ * @ingroup forms + */ +function system_pager_settings() { + $form['description'] = array( + '#markup' => '
' . t('The pager breaks long lists of items into multiple pages.') . '
', + ); + $form['pager_items'] = array( -+ '#type' => 'textfield', ++ '#type' => 'number', + '#title' => t('Items per page'), + '#size' => 4, + '#maxlength' => 3, -+ '#description' => t('Enter the number of items the pager should show on a single page. If you set this too high, large listings might slow down your site.'), ++ '#description' => t('Enter the number of items the pager should show on a single page.'), + '#default_value' => variable_get('pager_items', PAGER_ITEMS), + ); + return system_settings_form($form); +} + +/** -+ * Validate handler for the pager settings form. ++ * Form validation handler for system_pager_settings(). + */ +function system_pager_settings_validate($form, &$form_state) { + if (!is_numeric($form_state['values']['pager_items'])) { -+ form_set_error('pager_items', t('You must enter a positive whole number between 10 and 1000.')); ++ form_set_error('pager_items', t('You must enter a positive whole number between 1 and 1000.')); + } -+ else if (intval($form_state['values']['pager_items']) < 10) { -+ form_set_error('pager_items', t('You must enter a positive number between 10 and 1000.')); ++ elseif (intval($form_state['values']['pager_items']) < PAGER_ITEMS_MIN) { ++ form_set_error('pager_items', t('You must enter a positive whole number between 1 and 1000.')); + } -+ else if (intval($form_state['values']['pager_items']) >= 1000) { -+ form_set_error('pager_items', t('You must enter a positive number between 10 and 1000.')); ++ elseif (intval($form_state['values']['pager_items']) < PAGER_ITEMS_LOW) { ++ drupal_set_message('pager_items', t('Setting the value too low can adversely affect the user experience.')); + } -+ else if (intval($form_state['values']['pager_items']) >= 200) { -+ drupal_set_message(t('Setting the default too high can adversely affect performance on listing pages.'), 'warning'); ++ elseif (intval($form_state['values']['pager_items']) >= PAGER_ITEMS_MAX) { ++ form_set_error('pager_items', t('You must enter a positive whole number between 1 and 1000.')); ++ } ++ elseif (intval($form_state['values']['pager_items']) >= PAGER_ITEMS_HIGH) { ++ drupal_set_message(t('Setting the value too high can adversely affect performance on listing pages.'), 'warning'); + } +} ++ +/** * Form builder; Configure error reporting settings. * * @ingroup forms diff --git a/core/modules/system/system.module b/core/modules/system/system.module -index 469f996..6902b47 100644 +index 151d299..d18ce50 100644 --- a/core/modules/system/system.module +++ b/core/modules/system/system.module -@@ -1024,6 +1024,15 @@ function system_menu() { +@@ -1033,6 +1033,15 @@ function system_menu() { 'file' => 'system.admin.inc', 'weight' => 20, ); + $items['admin/config/system/pager'] = array( + 'title' => t('Pager'), -+ 'description' => t('Configure the amount of items per page shown in generated lists.'), ++ 'description' => t('Configure the number of items per page shown in generated lists.'), + 'page callback' => 'drupal_get_form', + 'page arguments' => array('system_pager_settings'), + 'access arguments' => array('administer site configuration'),