Source of packages/Combie/Struktur/Pager.php
<?php
/**
 * Pager BlÃÂätterfunktion
 *
 * 
 *
 * @filesource
 * @author Combie <uli@combie.de>
 * @version $Id$
 * @package Combie
 * @subpackage Struktur
 */
namespace Combie\Struktur;
/**
 * Pager BlÃÂätterfunktion
 *
 *
 * @package Combie
 * @subpackage Struktur
 */
class Pager
{
/**
 *
 * @var integer Elemente pro Seite
 */
  private $perpage  = 1; 
  
/**
 *
 * @var integer Insgesamt vorhandene Elemente
 */
  private $anzahl   = 0;
/**
 *
 * @param integer Insgesamt vorhandene Elemente
 * @param integer Elemente pro Seite
 * @return void Keine RÃÂückgabe
 */
  public function __construct($anzahl,$perpage=1)
  {
    if($anzahl  < 0) throw new Exception('Negative Anzahl!');
    if($perpage < 1) throw new Exception('Min 1 Element per Page!');
    $this->perpage  = (int)$perpage; // integer erzwingen
    $this->anzahl   = (int)$anzahl;  // integer erzwingen
  }
/**
 * Anzahl Seiten
 * @return integer Anzahl Seiten
 */
  public function pages() // anzahl Seiten
  {
    return (int)ceil($this->anzahl/$this->perpage);
  }
/**
 * Seite
 *
 *
 * @return array Ein Array mit offset und Anzahl pro Seite
 */
  public function page($index) // gibt den ausgewÃÂählten Ausschnitt
  {
    $index  = (int)$index; // integer erzwingen
    if($index < 1) throw new Exception('Index to low!');
    $index--; // normalisieren
    $offset = $this->perpage * $index;
    if($offset >= $this->anzahl)
        throw new Exception('Index out of Range!');
    return array('offset'=>$offset,'count'=>$this->perpage);
  }
}
?>