<?php
class Pagination {
public $total = 0;
public $per_page = 10;
public $start = 0;
public $query = NULL;
public $view = FALSE;
private $page = 1;
private $pages = 1;
public function run() {
if($this->total <= $this->per_page) return FALSE;
$this->pages = ceil($this->total / $this->per_page);
if(!empty($_GET['page']) && $_GET['page'] = intval($_GET['page'])) {
$this->page = abs($_GET['page']);
if($this->page > $this->pages) $this->page = $this->pages;
$this->start = $this->per_page * $this->page - $this->per_page;
}
if($this->page > 1) {
$page1 = $this->page - 1;
$page2 = $this->page - 2;
if($this->page > 3)
$this->view .= ' <a href="'. $this->query .'1"><<</a> ';
$this->view .= ' <a href="'. $this->query . $page1 .'"><</a> ';
if($this->page > 2)
$this->view .= ' <a href="'. $this->query . $page2 .'">'. $page2 .'</a> |';
$this->view .= ' <a href="'. $this->query . $page1 .'">'. $page1 .'</a> |';
}
$this->view .= ' <b>'. $this->page .'</b>';
if($this->page < $this->pages) {
$page1 = $this->page + 1;
$page2 = $this->page + 2;
$this->view .= ' | <a href="'. $this->query . $page1 .'">'. $page1 .'</a>';
if($page1 < $this->pages)
$this->view .= ' | <a href="'. $this->query . $page2 .'">'. $page2 .'</a>';
$this->view .= ' <a href="'. $this->query . $page1 .'">></a>';
if($page2 < $this->pages)
$this->view .= ' <a href="'. $this->query . $this->pages .'">>></a>';
}
$this->view = '<pre>'. $this->view .'</pre>';
return TRUE;
}
}
?>