You are here

function template_preprocess_views_load_more_pager in Views Load More 2.x

Same name and namespace in other branches
  1. 8 views_load_more.module \template_preprocess_views_load_more_pager()

Preprocess function for views_load_more_pager theme hook.

File

./views_load_more.module, line 35
views_load_more.module

Code

function template_preprocess_views_load_more_pager(&$variables) {
  $element = $variables['element'];
  $parameters = $variables['parameters'];

  /** @var \Drupal\Core\Pager\PagerManagerInterface $pager_manager */
  $pager_manager = \Drupal::service('pager.manager');
  $pager = $pager_manager
    ->getPager($element);
  if (!$pager) {
    return;
  }

  // Calculate various markers within this pager piece:
  // Max is the maximum page number
  $pager_max = $pager
    ->getTotalPages();
  $current = $pager
    ->getCurrentPage();

  // Nothing to do if there is only one page.
  if ($pager_max <= 1) {
    return;
  }

  // Create the "next" link if we are not on the last page.
  if ($current < $pager_max - 1) {
    $options = [
      'query' => $pager_manager
        ->getUpdatedParameters($parameters, $element, $current + 1),
    ];
    $variables['next_url'] = Url::fromRoute('<current>', [], $options)
      ->toString();
  }
}