API15:JPagination
From Joomla! Documentation
[
Edit Descripton] The JPagination class supports pagination of lists of items across multiple pages. It can be used in both the front-end and back-end, although there are slight differences in behaviour. The HTML output can be overridden using a template layout override.
Defined in
libraries/joomla/html/pagination.php
Methods
Method name | Description |
---|---|
__construct | Constructor |
getRowOffset | Return the rationalised offset for a row with a given index. |
getData | Return the pagination data object, only creating it if it doesn't already exist |
getPagesCounter | Create and return the pagination pages counter string, ie. Page 2 of 4 |
getResultsCounter | Create and return the pagination result set counter string, ie. Results 1-10 of 42 |
getPagesLinks | Create and return the pagination page list string, ie. Previous, Next, 1 2 3 ... x |
getListFooter | Return the pagination footer |
getLimitBox | Creates a dropdown box for selecting how many records to show per page |
orderUpIcon | Return the icon to move an item UP |
orderDownIcon | Return the icon to move an item DOWN |
Importing
jimport( 'joomla.html.pagination' );
See also
Examples
Code Examples
´
Pagination like Google
JPagination on Frontpage
Mariska wrote:
if you want to Jpagination work on front page change Jpagination.php
on this code function _buildDataObject bicause this method use to generate link on front end // add "&limit=".$this->limit to $data->[]->link
function _buildDataObject() { // Initialize variables $data = new stdClass(); $data->all = new JPaginationObject(JText::_('View All')); if (!$this->_viewall) { $data->all->base = '0';
$data->all->link = JRoute::_("&limit=".$this->limit."&limitstart="); // <== this
} // Set the start and previous data objects $data->start = new JPaginationObject(JText::_('Start')); $data->previous = new JPaginationObject(JText::_('Prev')); if ($this->get('pages.current') > 1) { $page = ($this->get('pages.current') - 2) * $this->limit; $page = $page == 0 ? : $page; //set the empty for removal from route $data->start->base = '0';
$data->start->link = JRoute::_("&limit=".$this->limit."&limitstart="); //<== this
$data->previous->base = $page;
$data->previous->link = JRoute::_("&limit=".$this->limit."&limitstart=" . $page); //<== this
} // Set the next and end data objects $data->next = new JPaginationObject(JText::_('Next')); $data->end = new JPaginationObject(JText::_('End')); if ($this->get('pages.current') < $this->get('pages.total')) { $next = $this->get('pages.current') * $this->limit; $end = ($this->get('pages.total') - 1) * $this->limit; $data->next->base = $next;
$data->next->link = JRoute::_("&limit=".$this->limit."&limitstart=" . $next); // <== this
$data->end->base = $end;
$data->end->link = JRoute::_("&limit=".$this->limit."&limitstart=" . $end); // <== this
} $data->pages = array(); $stop = $this->get('pages.stop'); for ($i = $this->get('pages.start'); $i <= $stop; $i++) { $offset = ($i - 1) * $this->limit $offset = $offset == 0 ? : $offset; //set the empty for removal from route $data->pages[$i] = new JPaginationObject($i); if ($i != $this->get('pages.current') || $this->_viewall) { $data->pages[$i]->base = $offset;
$data->pages[$i]->link = JRoute::_("&limit=".$this->limit."&limitstart=" . $offset); //<== this
} } return $data; }
Batch1211 05:42, 27 September 2010 (CDT) Edit comment
This is a core hack. Files you change as described on this page will be overwritten during updates of Joomla!. For more information, see Core hack.
This example was originally contributed by User:Mahboobkhalid.