Файл: kernel/_class/Navigation.class.php
Строк: 39
<?php
##################################################################
## Development by CoMMoN web site author http://mirmastera.ru ##
## fportal web site scripts http://fportal.tk ##
## All rights reserved authors ##
##################################################################
class Navigation {
/* Автор класса Okula (Александр Третьяков)
Немного коментариев:
$page это номер страницы переданной из $_GET параметра, предварительно отфильтрованна
$pnumber это число элементов выводимых на страницу
$begin это число от которого начинается отсчёт в SQl запросе
$colp это общее количество элементов находящихся в базе
$urlp это url модуля
*/
public $pnumber, $begin, $page, $colp;
function __construct($pnumber, $page, $colp, $urlp) {
$this->pnumber = $pnumber;
$this->page = $page;
$this->colp = $colp;
$this->urlp = $urlp;
}
/**
* Готовим данные для навигации
*/
function navi() {
if($this->page == 0) $this->page = 1;
if($this->colp/$this->pnumber < $this->page) $this->page = ceil($this->colp/$this->pnumber);
$this->begin=($this->page-1)*$this->pnumber;
}
/**
* Постаничная навигация
*/
function Navigation() {
$number = (int) ($this->colp/$this->pnumber);
if($this->colp >= ($this->pnumber+1)) {
if((float) ($this->colp/$this->pnumber)-$number !=0) $number++;
echo '<div class="menu">';
if($this->page == "1") {echo"<< Пред. ";}
if($this->begin>0) {
echo "<a class='pagenav' href='".$this->urlp."&page=".($this->page-1)."'><< Пред.</a>";
}
$all = ceil($this->colp/$this->pnumber); $i=1; $c=""; $tt=$this->page;
while($i<=$all) {
if($i<=3 || $i==$tt- 1 || $i==$tt || $i==$tt+1 || $i>=$all-2) {
$ii="<a class='pagenav' href='".$this->urlp."&page=".$i."'>".$i."</a>";
if($i==$tt) {
if($i!=$all){ $c.= "<b>".$i."</b>,";
} else {$c.= "<b>".$i."</b>";}
}
else { if($i!=$all){ $c.= $ii.",";} else{$c.= $ii;}
}
} else {$c.= "."; }
$i++;
}
$c = preg_replace("/[,][.]+/", "...", $c);
echo " ".$c." ";
if($this->colp>$this->begin+$this->pnumber) {
echo " <a class='pagenav' href='".$this->urlp."&page=".($this->page+1)."'> След.>></a>";
}
if($number == $this->page) {echo" След.>>";}
echo"</div>";
}
}
}
?>