You are here

function Full::set_current_page in Views (for Drupal 7) 8.3

Set the current page.

Parameters

$number: If provided, the page number will be set to this. If NOT provided, the page number will be set from the global page array.

Overrides PagerPluginBase::set_current_page

1 call to Full::set_current_page()
Full::update_page_info in lib/Drupal/views/Plugin/views/pager/Full.php
Update global paging info.

File

lib/Drupal/views/Plugin/views/pager/Full.php, line 318
Definition of Drupal\views\Plugin\views\pager\Full.

Class

Full
The plugin to handle full pager.

Namespace

Drupal\views\Plugin\views\pager

Code

function set_current_page($number = NULL) {
  if (isset($number)) {
    $this->current_page = max(0, $number);
    return;
  }

  // If the current page number was not specified, extract it from the global
  // page array.
  global $pager_page_array;
  if (empty($pager_page_array)) {
    $pager_page_array = array();
  }

  // Fill in missing values in the global page array, in case the global page
  // array hasn't been initialized before.
  $page = drupal_container()
    ->get('request')->query
    ->get('page');
  $page = isset($page) ? explode(',', $page) : array();
  for ($i = 0; $i <= $this->options['id'] || $i < count($pager_page_array); $i++) {
    $pager_page_array[$i] = empty($page[$i]) ? 0 : $page[$i];
  }

  // Don't allow the number to be less than zero.
  $this->current_page = max(0, intval($pager_page_array[$this->options['id']]));
}