<?php
 
include 'config.php';
 
include 'A/Pager.php';
 
include 'A/Pager/Request.php';
 
include 'A/Pager/Request/Session.php';
 
include 'A/Pager/HTMLWriter.php';
 
 
// check if other example has included this file and created a datasource
 
if (! isset($datasource)) {
 
    include 'A/Pager/Array.php';
 
    
 
    // initialize an array for testing
 
    $first = 0;
 
    $last = 75;
 
    for ($i=$first; $i<=$last; ++$i) {
 
        $myarray[$i]['id'] = $i;
 
        $myarray[$i]['text'] = 'This is row ' . $i;
 
        $myarray[$i]['sort'] = $last - $i;
 
    }
 
    #$myarray = null;
 
    // create a data object that has the interface needed by the Pager object
 
    $datasource = new A_Pager_Array($myarray);
 
    $datasource->orderBy('text');
 
}
 
 
// create pager using values from datasource and request params
 
$pager = new A_Pager($datasource);
 
$pager->setPageSize(25);                // change from default of 10 of you want
 
$pager->setOrderByFields(array('id', 'text', 'sort'), 'text');    // allowed orderby fields and starting sort
 
 
// create a request processor to set pager from GET parameters
 
#$request = new PagerRequest($pager);
 
$request = new A_Pager_Request_Session($pager);
 
$request->process();
 
    
 
if ($pager->hasPages()) {
 
 
    // create a HTML writer to output
 
    $writer = new A_Pager_HTMLWriter($pager);
 
    
 
    // get rows of data
 
    $start_row = $pager->getStartRow();
 
    $end_row = $pager->getEndRow();
 
    $rows = $datasource->getRows($start_row, $end_row);
 
    
 
    // display the data
 
    echo '<table border="1">';
 
        echo '<tr>';
 
        echo '<td> </td>';
 
        echo '<td>' . $writer->getOrderByLink('id', 'Key') . '</td>';
 
        echo '<td>' . $writer->getOrderByLink('text', 'Text') . '</td>';
 
        echo '<td>' . $writer->getOrderByLink('sort', 'Sort') . '</td>';
 
        echo '<td> </td>';
 
        echo '</tr>';
 
    $n = $start_row;
 
    foreach ($rows as $row) {
 
        echo '<tr>';
 
        echo '<td>' . $n++ . '.</td>';
 
        foreach ($row as $value) {
 
            echo '<td>' . $value . '</td>';
 
        }
 
        echo '<td><a href="example_sub_page.php?script=' . basename($_SERVER['SCRIPT_NAME']) . '">Sub Page</a></td>';
 
        echo '</tr>';
 
    }
 
    echo '</table>';
 
    
 
    // display the paging links
 
    echo $writer->getFirstLink() . ' | ' . $writer->getPrevLink() . ' | ' . implode(' | ', $writer->getRangeLinks()) . ' | ' . $writer->getNextLink() . ' | ' . $writer->getLastLink() . '<p/>';
 
    echo 'Page Size: ' . $writer->getPageSizeLink(5) . ' | ' . $writer->getPageSizeLink(10) . '<p/>';
 
    
 
} else {
 
    
 
    echo 'No records found.';
 
    
 
}
 
 
?>
 
<p/>
 
<a href="../">Return to Examples</a>
 
 
 |