diff --git a/libraries/src/Router/SiteRouter.php b/libraries/src/Router/SiteRouter.php index 6dbabc1ea02a2..d305f2b01c4dd 100644 --- a/libraries/src/Router/SiteRouter.php +++ b/libraries/src/Router/SiteRouter.php @@ -597,7 +597,9 @@ protected function processParseRules(&$uri, $stage = self::PROCESS_DURING) // Process the pagination support if ($this->_mode == JROUTER_MODE_SEF) { - if ($start = $uri->getVar('start')) + $start = $uri->getVar('start'); + + if ($start !== null) { $uri->delVar('start'); $vars['limitstart'] = $start; @@ -678,7 +680,9 @@ protected function processBuildRules(&$uri, $stage = self::PROCESS_DURING) if ($this->_mode == JROUTER_MODE_SEF && $route) { - if ($limitstart = $uri->getVar('limitstart')) + $limitstart = $uri->getVar('limitstart'); + + if ($limitstart !== null) { $uri->setVar('start', (int) $limitstart); $uri->delVar('limitstart'); diff --git a/tests/unit/suites/libraries/cms/router/JRouterSiteTest.php b/tests/unit/suites/libraries/cms/router/JRouterSiteTest.php index c2c91c1e9ceef..7dd897fba4b65 100644 --- a/tests/unit/suites/libraries/cms/router/JRouterSiteTest.php +++ b/tests/unit/suites/libraries/cms/router/JRouterSiteTest.php @@ -1192,6 +1192,11 @@ public function casesProcessBuildRules() 'mode' => JROUTER_MODE_SEF, 'expected' => 'test?start=42' ), + 'limitstart_zero' => array( + 'url' => 'test?limitstart=0', + 'mode' => JROUTER_MODE_SEF, + 'expected' => 'test?start=0' + ), ); }