File Manager

Current Path : /webspace/www.promiel.be/html/modules/CGExtensions/lib/query/
Upload File :
Current File : //webspace/www.promiel.be/html/modules/CGExtensions/lib/query/class.pagination.php

<?php

namespace CGExtensions\query;

class pagination implements \ArrayAccess
{
    private $_rs;

    public function __construct(resultset &$rs)
    {
        $this->_rs = $rs;
    }

    public function OffsetGet($key)
    {
        switch( $key ) {
        case 'pagecount':
            $n = $this->_rs->TotalMatches();
            $p = (int) ceil($n / $this->_rs->get_query()['limit']);
            return $p;

        case 'page':
            $p = (int)($this->_rs->get_query()['offset'] / $this->_rs->get_query()['limit']) + 1;
            return $p;

        case 'pagelimit':
            return $this->_rs->get_query()['limit'];

        case 'totalrows':
            return $this->_rs->TotalMatches();

        default:
            throw new \RuntimeException($key.' is not a member of '.__CLASS__);
        }
    }

    public function OffsetSet($key,$value)
    {
        // do nothing
    }

    public function OffsetExists($key)
    {
        // do nothing
    }

    public function OffsetUnset($key)
    {
        // do nothing
    }

    public function get_pagelist($surround = 3)
    {
        $list = array();
        for( $i = 1; $i <= min($surround,$this['pagecount']); $i++ ) {
            $list[] = (int)$i;
        }

        $x1 = max(1,(int)($this['page'] + $surround / 2));
        $x2 = min($this['pagecount'],(int)($this['page'] + $surround / 2) );
        for( $i = $x1; $i <= $x2; $i++ ) {
            $list[] = (int)$i;
        }

        for( $i = max(1,$this['pagecount'] - $surround); $i <= $this['pagecount']; $i++) {
            $list[] = (int)$i;
        }

        $list = array_unique($list);
        sort($list);
        return $list;
    }

    public function get_pagehash($surround = 3)
    {
        $list = $this->get_pagelist($surround);
        $out = array();
        foreach( $list as $one ) {
            $out[$one] = $one;
        }
        return $out;
    }
} // end of class

?>

File Manager Version 1.0, Coded By Lucas
Email: hehe@yahoo.com