diff --git a/libraries/cms/pagination/pagination.php b/libraries/cms/pagination/pagination.php index 3c8844a1b6219..82cd36b7cb8e6 100644 --- a/libraries/cms/pagination/pagination.php +++ b/libraries/cms/pagination/pagination.php @@ -781,7 +781,7 @@ protected function _buildDataObject() // @todo remove code: $page = $page == 0 ? '' : $page; $data->start->base = '0'; - $data->start->link = JRoute::_($params . '&' . $this->prefix . 'limitstart=0'); + $data->start->link = JRoute::_($params); $data->previous->base = $page; $data->previous->link = JRoute::_($params . '&' . $this->prefix . 'limitstart=' . $page); } @@ -813,7 +813,14 @@ protected function _buildDataObject() if ($i != $this->pagesCurrent || $this->viewall) { $data->pages[$i]->base = $offset; - $data->pages[$i]->link = JRoute::_($params . '&' . $this->prefix . 'limitstart=' . $offset); + if ($offset == 0) + { + $data->pages[$i]->link = JRoute::_($params); + } + else + { + $data->pages[$i]->link = JRoute::_($params . '&' . $this->prefix . 'limitstart=' . $offset); + } } else { diff --git a/libraries/cms/router/site.php b/libraries/cms/router/site.php index 21166fddb00b5..95fe49068827a 100644 --- a/libraries/cms/router/site.php +++ b/libraries/cms/router/site.php @@ -532,7 +532,8 @@ protected function processParseRules(&$uri) // Process the pagination support if ($this->_mode == JROUTER_MODE_SEF) { - if ($start = $uri->getVar('start')) + $start = (int) $uri->getVar('start', -1); + if ($start >= 0) { $uri->delVar('start'); $vars['limitstart'] = $start; @@ -579,9 +580,9 @@ protected function processBuildRules(&$uri) if ($this->_mode == JROUTER_MODE_SEF && $route) { - $limitstart = (int) $uri->getVar('limitstart'); + $limitstart = (int) $uri->getVar('limitstart', -1); - if ($limitstart > 0) + if ($limitstart >= 0) { $uri->setVar('start', $limitstart); }