Set WeberTrivia.com to be my default homepage.   Suggest a Question                                               

Suggest A Question : :  Frequently Asked Questions : :  Search : :  Relevant Manuals : : 
PHP Questions : :  Linux Questions : :  MySQL Questions : : 
home  [ Login ] 

Introduction

Introduction -- Usage of Pager 2.x

What is Pager?

Pager is a class to page an array of data. It is taken as input and it is paged according to various parameters. Pager also builds links within a specified range, and allows complete customization of the output (it even works with mod_rewrite). It is compatible with Pager v.1.x and Pager_Sliding API

Example 1

This simple example will page the array of alphabetical letters, giving back pages with 3 letters per page, and links to the previous two / next two pages:

require_once 'Pager/Pager.php'; $params = array(             'mode'       => 'Jumping',             'perPage'    => 3,             'delta'      => 2,             'itemData'   => array('a','b','c','d','e',[...omissis...],'z')             ); $pager = & new Pager($params); $data  = $pager->getPageData(); $links = $pager->getLinks(); //$links is an ordered+associative array with 'back'/'pages'/'next'/'first'/'last'/'all' links. //NB: $links['all'] is the same as $pager->links;  //echo links to other pages: echo $links['all']  //Show data for current page: echo 'PAGED DATA: ' ; print_r($data);  //Results from methods: echo 'getCurrentPageID()...: '; var_dump($pager->getCurrentPageID()); echo 'getNextPageID()......: '; var_dump($pager->getNextPageID()); echo 'getPreviousPageID()..: '; var_dump($pager->getPreviousPageID()); echo 'numItems()...........: '; var_dump($pager->numItems()); echo 'numPages()...........: '; var_dump($pager->numPages()); echo 'isFirstPage()........: '; var_dump($pager->isFirstPage()); echo 'isLastPage().........: '; var_dump($pager->isLastPage()); echo 'isLastPageComplete().: '; var_dump($pager->isLastPageComplete()); echo '$pager->range........: '; var_dump($pager->range);
In case you're wondering, $pager->range is a numeric array; its keys are the numbers of the pages in the current range, and the matching values are booleans (TRUE if its key represents currentPage, FALSE otherwise). This array can be useful to build the links manually, e.g. when using a template engine.

Example 2

This example shows how you can use this class with mod_rewite. Let's suppose we have a .htaccess like this:

--------- RewriteEngine on #Options FollowSymlinks  RewriteBase / RewriteRule ^articles/([a-z]{1,12})/art([0-9]{1,4})\.html$ /article.php?num=$2&month=$1 [L] ---------
It should transform an url like "/articles/march/art15.html" into "/article.php?num=15&month=march"

require_once 'Pager/Pager.php';  $month = 'september'; $params = array(             'mode'      => 'Sliding',             'append'    => false,             'urlVar'    => 'num',             'path'      => 'http://myserver.com/articles/' . $month,             'fileName'  => 'art%d.html',  //Pager replaces "%d" with page number...             'itemData'  => array('a','b','c',[...omissis...],'z'),             'perPage'   => 3             ); $pager = & new Pager($params);  $data  = $pager->getPageData(); echo $pager->links; echo 'Data for current page: '; print_r($data);

More pagers in a single page

Using more than one pager in a single page is as simple as using a different urlVar for each pager:

require_once 'Pager/Pager.php';  //first pager $params1 = array(             'perPage'    => 3,             'urlVar'     => pageID_articles,  //1st identifier             'itemData'   => $someArray             ); $pager1 = & new Pager($params1); $data1  = $pager1->getPageData(); $links1 = $pager1->getLinks();  //second pager $params2 = array(             'perPage'    => 8,             'urlVar'     => pageID_news,      //2nd identifier             'itemData'   => $someOtherArray             ); $pager2 = & new Pager($params2); $data2  = $pager2->getPageData(); $links2 = $pager2->getLinks();

Important note for PHP 5 users

Pager v.2.x works with PHP 5 too, but it needs to be called differently:

//chose your preferred mode [Jumping | Sliding]:  //require_once 'Pager/Jumping.php'; require_once 'Pager/Sliding.php';  //$pager = & new Pager_Jumping($params); $pager = & new Pager_Sliding($params);  //continue as you did before

Who's Online
Guest Users: 9
Google
Web
WeberTrivia
WeberDev
WeberForums
 Free Sample Chapters  Free Sample Chapters
  Deliver First Class Web Sites: 101 Essential Checklists
Want to learn how to make your web sites usable and accessible? Want to ensure that your sites meet current best practice, without spending hours trawling through incomprehensible specifications and recommendations from dozens of different books, research papers, and web sites? Want to make sure that the sites you build are "right the first time," requiring no costly redevelopments?

More Sample Chapters

PHP General