API16

API16:JPagination/ construct

From Joomla! Documentation

Description

Constructor.



Syntax

__construct($total, $limitstart, $limit, $prefix= '')
Parameter Name Default Value Description
$total The total number of items.
$limitstart The offset of the item to start at.
$limit The number of items to display per page.
$prefix The prefix used for request variables.

Defined in

libraries/joomla/html/pagination.php

Importing

jimport( 'joomla.html.pagination' );

Source Body

function __construct($total, $limitstart, $limit, $prefix = '')
{
        // Value/type checking.
        $this->total            = (int) $total;
        $this->limitstart       = (int) max($limitstart, 0);
        $this->limit            = (int) max($limit, 0);
        $this->prefix           = $prefix;

        if ($this->limit > $this->total) {
                $this->limitstart = 0;
        }

        if (!$this->limit)
        {
                $this->limit = $total;
                $this->limitstart = 0;
        }

        /*
         * If limitstart is greater than total (i.e. we are asked to display records that don't exist)
         * then set limitstart to display the last natural page of results
         */
        if ($this->limitstart > $this->total - $this->limit) {
                $this->limitstart = max(0, (int)(ceil($this->total / $this->limit) - 1) * $this->limit);
        }

        // Set the total pages and current page values.
        if ($this->limit > 0)
        {
                $this->set('pages.total', ceil($this->total / $this->limit));
                $this->set('pages.current', ceil(($this->limitstart + 1) / $this->limit));
        }

        // Set the pagination iteration loop values.
        $displayedPages = 10;
        $this->set('pages.start', (floor(($this->get('pages.current') -1) / $displayedPages)) * $displayedPages +1);
        if ($this->get('pages.start') + $displayedPages -1 < $this->get('pages.total')) {
                $this->set('pages.stop', $this->get('pages.start') + $displayedPages -1);
        }
        else {
                $this->set('pages.stop', $this->get('pages.total'));
        }

        // If we are viewing all records set the view all flag to true.
        if ($this->limit == $total) {
                $this->_viewall = true;
        }
}



Examples

Code Examples