diff --git a/wcfsetup/install/files/lib/system/gridView/AbstractGridView.class.php b/wcfsetup/install/files/lib/system/gridView/AbstractGridView.class.php index df686c1bbdc..0ff51e4f30f 100644 --- a/wcfsetup/install/files/lib/system/gridView/AbstractGridView.class.php +++ b/wcfsetup/install/files/lib/system/gridView/AbstractGridView.class.php @@ -768,10 +768,6 @@ protected function validate(): void if ($titleColumn === null) { throw new \InvalidArgumentException("Missing title column in grid view with id '{$this->getID()}'."); } - - if ($this->getPageNo() > 1 && $this->getPageNo() > $this->countPages()) { - $this->setPageNo($this->countPages() ?: 1); - } } /** @@ -852,6 +848,19 @@ protected function initObjectList(): void $this->fireInitializedEvent(); $this->validate(); + if ($this->getObjectIDFilter() !== null) { + $this->objectList->getConditionBuilder()->add( + $this->objectList->getDatabaseTableAlias() . '.' . $this->objectList->getDatabaseTableIndexName() . ' = ?', + [$this->getObjectIDFilter()] + ); + } + + $this->applyFilters(); + + if ($this->getPageNo() > 1 && $this->getPageNo() > $this->countPages()) { + $this->setPageNo($this->countPages() ?: 1); + } + $this->objectList->sqlLimit = $this->getRowsPerPage(); $this->objectList->sqlOffset = ($this->getPageNo() - 1) * $this->getRowsPerPage(); if ($this->getSortField()) { @@ -866,14 +875,6 @@ protected function initObjectList(): void $this->objectList->sqlOrderBy .= ',' . $this->objectList->getDatabaseTableAlias() . '.' . $this->objectList->getDatabaseTableIndexName() . ' ' . $this->getSortOrder(); } - if ($this->getObjectIDFilter() !== null) { - $this->objectList->getConditionBuilder()->add( - $this->objectList->getDatabaseTableAlias() . '.' . $this->objectList->getDatabaseTableIndexName() . ' = ?', - [$this->getObjectIDFilter()] - ); - } - - $this->applyFilters(); } /** diff --git a/wcfsetup/install/files/lib/system/listView/AbstractListView.class.php b/wcfsetup/install/files/lib/system/listView/AbstractListView.class.php index 8f941e89e6e..80efd93c3e2 100644 --- a/wcfsetup/install/files/lib/system/listView/AbstractListView.class.php +++ b/wcfsetup/install/files/lib/system/listView/AbstractListView.class.php @@ -246,11 +246,6 @@ protected function initObjectList(): void $this->fireInitializedEvent(); $this->validate(); - $this->objectList->sqlLimit = $this->getFixedNumberOfItems() ?: $this->getItemsPerPage(); - if (!$this->getFixedNumberOfItems()) { - $this->objectList->sqlOffset = ($this->getPageNo() - 1) * $this->getItemsPerPage(); - } - $this->objectList->sqlOrderBy = $this->getSqlOrderBy(); if ($this->getObjectIDFilter() !== null) { $this->objectList->getConditionBuilder()->add( $this->objectList->getDatabaseTableAlias() . '.' . $this->objectList->getDatabaseTableIndexName() . ' = ?', @@ -259,6 +254,16 @@ protected function initObjectList(): void } $this->applyFilters(); + + if ($this->getPageNo() > 1 && $this->getPageNo() > $this->countPages()) { + $this->setPageNo($this->countPages() ?: 1); + } + + $this->objectList->sqlLimit = $this->getFixedNumberOfItems() ?: $this->getItemsPerPage(); + if (!$this->getFixedNumberOfItems()) { + $this->objectList->sqlOffset = ($this->getPageNo() - 1) * $this->getItemsPerPage(); + } + $this->objectList->sqlOrderBy = $this->getSqlOrderBy(); } protected function validate(): void @@ -276,10 +281,6 @@ protected function validate(): void } } } - - if ($this->getPageNo() > 1 && $this->getPageNo() > $this->countPages()) { - $this->setPageNo($this->countPages() ?: 1); - } } protected function getSqlOrderBy(): string