You are here

function views_infinite_scroll_preprocess_views_infinite_scroll_pager in Views Infinite Scroll 8

Same name and namespace in other branches
  1. 7.2 views_infinite_scroll.module \views_infinite_scroll_preprocess_views_infinite_scroll_pager()

Implements hook_preprocess_views_infinite_scroll_pager().

File

./views_infinite_scroll.module, line 15
Module file for views_infinite_scroll.

Code

function views_infinite_scroll_preprocess_views_infinite_scroll_pager(&$vars) {

  // The important parts we needed lifted wholesale from
  // template_preprocess_views_mini_pager().

  /** @var \Drupal\Core\Pager\PagerManagerInterface $pager_manager */
  $pager_manager = \Drupal::service('pager.manager');
  $element = $vars['element'];
  $parameters = $vars['parameters'];
  $pager = $pager_manager
    ->getPager($element);
  if (isset($pager) && $pager
    ->getCurrentPage() < $pager
    ->getTotalPages() - 1) {
    $options = [
      'query' => $pager_manager
        ->getUpdatedParameters($parameters, $element, $pager
        ->getCurrentPage() + 1),
    ];
    $vars['items']['next']['href'] = Url::fromRoute('<none>', [], $options);
  }
  $vars['#cache']['contexts'][] = 'url.query_args';
  $vars['attributes'] = new Attribute([
    'class' => [
      'js-pager__items',
      'pager',
    ],
    'data-drupal-views-infinite-scroll-pager' => $vars['options']['automatically_load_content'] ? 'automatic' : TRUE,
  ]);
}