Pagination на PHP

Pagination - это список самих страниц. Мы создадим относительно сложный pagination.

Чтобы создать Pagination на PHP, нам необходимо иметь на входе несколько параметров:

- count_pages - количество страниц.
- active - текущая активная страница.
- count_show_pages - количество отображаемых страниц. Например, если будет 888 страниц, то вывести их все весьма проблемно. Поэтому отображаться будет только заданное количество в этом параметре.
- url - адрес страницы, для которой и создается пагинатор.
- url_page - адрес страницы с параметром page без значения на конце. Например, "/abc.php?func=create&amp;page=".

  Теперь создается пагинатор: `<?`

  /*Входные параметры*/

  $count_pages=50;

  $active=15;

  $count_show_pages=10;

  $url="/index.php";

  $url_page="/index.php?page=";

  if($count_pages>1){//Все это только если количество страниц больше 1

  /*Дальше идет вычисление 1-й выводимой страницы и последней (чтобы текущая страница была где-то посредине, если это возможно, и чтобы общая сумма выводимых страниц была равна count_show_pages, либо меньше, если количество страниц недостаточно)*/

  $left=$active-1;$right=$count_pages-$active;if($left<floor($count_show_pages/2))$start=1;else$start=$active-floor($count_show_pages/2);$end=$start+$count_show_pages-1;if($end>$count_pages){$start-=($end-$count_pages);$end=$count_pages;if($start<1)$start=1;}?>

  Дальше идет вывод пагинатора

  <div id=pagination><span>Страницы: </span><?if($active!=1){?><a href="<?=$url?>"title="1-я страница">&lt;&lt;&lt;</a><a href="<?if($active==2){?><?=$url?><?php}else{?><?=$url_page.($active-1)?><?php}?>"title="Предыдущая страница">&lt;</a><?}?><?for($i=$start;$i<=$end;$i++){?><?if($i==$active){?><span><?=$i?></span><?php}else{?><a href="<?if($i==1){?><?=$url?><?php}else{?><?=$url_page.$i?><?php}?>"><?=$i?></a><?}}?><?if($active!=$count_pages){?><a href="<?=$url_page.($active+1)?>"title="Следующая страница">&gt;</a><a href="<?=$url_page.$count_pages?>"title="Последняя страница">&gt;&gt;&gt;</a><?}?></div><?}?>