Commit 6981b6bb authored by Nick Vanpraet's avatar Nick Vanpraet
Browse files

Issue #3024944 by StijnStroobants, djevans: Extra row + duplicates

parent b0e2907a
Loading
Loading
Loading
Loading
+22 −1
Original line number Diff line number Diff line
@@ -17,7 +17,9 @@ use Drupal\views\Plugin\views\pager\Mini;
 */
class FirstPageMini extends Mini {

  use FirstPageTrait;
  use FirstPageTrait {
    query as firstPageQuery;
  }

  /**
   * {@inheritdoc}
@@ -47,4 +49,23 @@ class FirstPageMini extends Mini {
    );
  }

  public function query() {

    parent::query();

    $this->firstPageQuery();

    $items_per_page = $this->getItemsPerPage();
    $total_pages = $this->options['total_pages'];
    $unlimited_pages = empty($total_pages);
    $before_final_page = $this->current_page < $total_pages;

    if ($items_per_page > 0 && ($unlimited_pages || $before_final_page)) {
      $limit = $this->view->query->getLimit();
      $limit += 1;
      $this->view->query->setLimit($limit);
    }

  }

}
+0 −10
Original line number Diff line number Diff line
@@ -58,18 +58,8 @@ trait FirstPageTrait {
    parent::query();

    $items_per_page = $this->getItemsPerPage();
    $total_pages = $this->options['total_pages'];
    $unlimited_pages = empty($total_pages);
    $before_final_page = $this->current_page < $total_pages;

    $this->view->query->setLimit($items_per_page);

    if ($items_per_page > 0 && ($unlimited_pages || $before_final_page)) {
      $limit = $this->view->query->getLimit();
      $limit += 1;
      $this->view->query->setLimit($limit);
    }

    if ($this->current_page > 0) {
      $offset = $this->options['items_first_page'];
      $offset += ($this->current_page - 1) * $this->options['items_per_page'];