Pagination::pageURL PHP Method

pageURL() public method

Returns a page url for any given page number
public pageURL ( integer $page ) : string
$page integer The page number
return string The url
    public function pageURL($page)
    {
        if ($this->options['method'] == 'query') {
            $query = url::query($this->options['url']);
            if ($page == 1 && $this->options['omitFirstPage']) {
                unset($query[$this->options['variable']]);
            } else {
                $query[$this->options['variable']] = $page;
            }
            return url::build(array('query' => $query), $this->options['url']);
        } else {
            $params = url::params($this->options['url']);
            if ($page == 1 && $this->options['omitFirstPage']) {
                unset($params[$this->options['variable']]);
            } else {
                $params[$this->options['variable']] = $page;
            }
            return url::build(array('params' => $params), $this->options['url']);
        }
    }

Usage Example

Example #1
0
 public function testMethods()
 {
     $this->assertInstanceOf('Pagination', $this->pagination);
     $this->assertEquals(100, $this->pagination->countItems());
     $this->assertEquals(10, $this->pagination->limit());
     $this->assertEquals(10, $this->pagination->countPages());
     $this->assertTrue($this->pagination->hasPages());
     $this->assertEquals(1, $this->pagination->page());
     $this->assertEquals(0, $this->pagination->offset());
     $this->assertEquals(1, $this->pagination->firstPage());
     $this->assertEquals(10, $this->pagination->lastPage());
     $this->assertTrue($this->pagination->isFirstPage());
     $this->assertFalse($this->pagination->isLastPage());
     $this->assertEquals(1, $this->pagination->prevPage());
     $this->assertFalse($this->pagination->hasPrevPage());
     $this->assertEquals(2, $this->pagination->nextPage());
     $this->assertTrue($this->pagination->hasNextPage());
     $this->assertEquals(1, $this->pagination->numStart());
     $this->assertEquals(10, $this->pagination->numEnd());
     $this->assertEquals($this->url, $this->pagination->firstPageURL());
     $this->assertEquals($this->url, $this->pagination->prevPageURL());
     $this->assertEquals($this->url . '/page:3', $this->pagination->pageURL(3));
     $this->assertEquals($this->url . '/page:5', $this->pagination->pageURL(5));
     $this->assertEquals($this->url . '/page:10', $this->pagination->lastPageURL());
     $this->assertEquals($this->url . '/page:2', $this->pagination->nextPageURL());
     $pagination = new Pagination($this->data, 20, array('url' => $this->url, 'variable' => 'seite', 'method' => 'query'));
     $this->assertEquals($this->url . '/?seite=3', $pagination->pageURL(3));
     $this->assertEquals($this->url . '/?seite=5', $pagination->pageURL(5));
     $this->assertEquals($this->url, $pagination->firstPageURL());
     $this->assertEquals($this->url . '/?seite=5', $pagination->lastPageURL());
     $this->assertEquals($this->url, $pagination->prevPageURL());
     $this->assertEquals($this->url . '/?seite=2', $pagination->nextPageURL());
     // test the new page option
     $pagination = new Pagination(200, 20, array('page' => 2));
     $this->assertEquals(2, $pagination->page());
 }