diff --git a/libraries/src/Pagination/Pagination.php b/libraries/src/Pagination/Pagination.php index df4c0600e798a..c61d9b8f496a0 100644 --- a/libraries/src/Pagination/Pagination.php +++ b/libraries/src/Pagination/Pagination.php @@ -784,15 +784,7 @@ protected function _buildDataObject() if (!$this->viewall) { $data->all->base = '0'; - - if ($this->hideEmptyLimitstart) - { - $data->all->link = \JRoute::_($params ?: '&'); - } - else - { - $data->all->link = \JRoute::_($params . '&' . $this->prefix . 'limitstart='); - } + $data->all->link = \JRoute::_($params . '&' . $this->prefix . 'limitstart='); } // Set the start and previous data objects. @@ -805,7 +797,7 @@ protected function _buildDataObject() if ($this->hideEmptyLimitstart) { - $data->start->link = \JRoute::_($params ?: '&'); + $data->start->link = \JRoute::_($params . '&' . $this->prefix . 'limitstart='); } else { diff --git a/tests/unit/suites/libraries/cms/pagination/JPaginationTest.php b/tests/unit/suites/libraries/cms/pagination/JPaginationTest.php index 957799062cc3d..240930eae184c 100644 --- a/tests/unit/suites/libraries/cms/pagination/JPaginationTest.php +++ b/tests/unit/suites/libraries/cms/pagination/JPaginationTest.php @@ -94,6 +94,17 @@ public function buildLink($url) { if (substr($url, 0, 1) === '&') { + parse_str($url, $vars); + + foreach ($vars as $key => $var) + { + if ($var == '') + { + // Remove empty parameters + $url = str_replace("&$key=", '', $url) ?: '&'; + } + } + $url = 'index.php?' . substr($url, 1); } @@ -311,7 +322,7 @@ public function dataTestBuildDataObject() array( 'text' => 'JLIB_HTML_VIEW_ALL', 'base' => '0', - 'link' => 'index.php?limitstart=', + 'link' => 'index.php', 'prefix' => '', 'active' => false, ),