Файл: dobavka/MAP.php
Строк: 26
<?php
$ss=32456;
class N{ // создаем класс навигации
// задаем свойства класса и права доступа для них
public $post;
public $start;
public $num;
public $limit;
private $page=1;
private $who;
private $hvost;
private $total=0;
############################
public function __construct($post,$num,$who,$hvost){ // создаем конструктор и задаем в нем свойства класса
if(isset($_REQUEST['page'])){ // получаем номер текущей страницы
$this->page=intval($_REQUEST['page']);
}
if(is_numeric($post)){ // получаем общее кол-во записей; первый аргумент может быть как sql запросом, так и простым числом(для файлов)
$this->post=$post;
}else{
$this->post=mysql_result(mysql_query($post),0);
}
if($this->post){ // если есть записи, то двигаемся дальше и рассчитываем лимиты
$this->who=$who; // имя записей
$hvost="?der=";$hvost2="&";
$this->hvost="?der="; // хвост ссылки
$this->num=$num; // кол-во записей на страницу
$this->total=intval(($this->post-1)/$this->num)+1; // рассчитываем лимиты показа на страницу
if($this->page>$this->total){$this->page=$this->total;}elseif($this->page<1){$this->page=1;}
$this->start=$this->page*$this->num-$this->num;
$this->limit=$this->start.', '.$this->num;
}else{ // иначе выводим сообщение о том, что вывести нечего
echo 'Нету '.$who;
}
}
##############
public function __destruct(){ // функция постраничной навигации в качестве деструктора, я Вам ее уже комментировал
#######
if($this->page!=1){
echo '<a href="'.$this->hvost.'page='.($this->page-1).'&der='.$ss.'"><<Пред.</a> ';
if($this->page!=$this->total){echo '|| ';}
}
if($this->page<$this->total){
echo ' <a href="'.$this->hvost.''.$ss.'&page='.($this->page+1).'">След.>></a>';
}
echo '<br/>';
#######
$pp=$p2l=$p1l=$p1r=$p2r=$np='';
if($this->page<$this->total){
$p1r='<a href="'.$this->hvost.'page='.($this->page+1).'">'.($this->page+1).'</a>';
if($this->page+1!=$this->total and $this->total-4<$this->page){$p1r.=',';}
}
if($this->page+4<$this->total){
$p1r.=',<a href="'.$this->hvost.'page='.($this->page+2).'">'.($this->page+2).'</a>';
}
if($this->page-3>0){
$pp='<a href="'.$this->hvost.'page=1'.'">1</a>';
if($this->page-4>0){
$pp.=',<a href="'.$this->hvost.'page=2'.'">2</a>';
}
if($this->page-5>0){
$pp.=',<a href="'.$this->hvost.'page=3'.'">3</a>';
}
if($this->page-6>0 and $this->page<8){
$pp.=',<a href="'.$this->hvost.'page=4"'.'>4</a>';
}
if($this->page>7){$pp.='...';}else{$pp.=',';}
}
if($this->page+2<$this->total){
$np='<a href="'.$this->hvost.'page='.$this->total.'">'.$this->total.'</a>';
}
if($this->page-2>0){
$p2l='<a href="'.$this->hvost.'page='.($this->page-2).'">'.($this->page-2).'</a>,';
}
if($this->page-1>0){
$p1l='<a href="'.$this->hvost.'page='.($this->page-1).'">'.($this->page-1).'</a>,';
}
if($this->total-3>$this->page){
if($this->page+3==$this->total-3){
$p2r=',<a href="'.$this->hvost.'page='.($this->total-3).'">'.($this->total-3).'</a>';
}
if($this->page+2<$this->total-4){$p2r.='...';}else{$p2r.=',';}
$p2r.='<a href="'.$this->hvost.'page='.($this->total-2).'">'.($this->total-2).'</a>,<a href="'.$this->hvost.'page='.($this->total-1).'">'.($this->total-1).'</a>,';
}elseif($this->page+1<$this->total){
$p2r='<a href="'.$this->hvost.'page='.($this->page+2).'">'.($this->page+2).'</a>';
if($this->page+2<$this->total){$p2r.=',';}
}
#######
if($this->total!=1){
}
if($this->total>1){
echo '<form action="'.$this->hvost.'" method="post">
<input type="text" name="page" size="10" maxlength="30" value="'.$this->page.'" /><br/>
<input class="s" type="submit" value="Перейти на стр." />
</form>';
}
}
############################
}