zerknij na metodę pagerShow - a to jak obliczysz wcześniej aktywną stronę to już Twoja sprawa jeśli nie masz w get - drugi parametr pokazuje liczbę maksymalnie wyświetlonych numerów obok aktywnej strony w lewo i w prawo...
class pager {
private $v;
public function __construct($all,$countOn) {
$this->v=array('all'=>$all,'countOn'=>$countOn,'pages'=>ceil
($all/$countOn)); }
public function pageGetNr
($gdzie) {if(!isset($this->v['pageNr'])) {$this->v['pageNr']=min(array(ceil($gdzie/$this->v['countOn']),$this->v['pages']));}; return $this->v['pageNr'];
}
public function pageGetStart($pageNr) {
return ($pageNr-1)*$this->v['countOn'];
}
public function pageCountOn() {
return $this->v['countOn'];
}
public function pagerShow($pageNr,$ile=1) {$i=1;$v='';
while($i<=$this->v['pages']) {
$v.=($i==$pageNr)?'<li class="active">'.$i.'</li>':'<li><a href="?page='.$i.'">'.$i.'</a></li>';
if($i<($pageNr-$ile-1)) {$v.='<li>…</li>';$i=$pageNr-$ile;continue;};
if(($i>($pageNr+$ile-1))&&($i<$this->v['pages'])) {$v.='<li>…</li>';$i=$this->v['pages'];continue;};
++$i;} ;
return $v;
}
}