Код для пагинации PHP

Автор: | 14.05.2018
<?
//1. Задаем переменные
$items=430;
$items_per_page=25;
$pages_in_paginator=11;
$paginator_offset=floor($pages_in_paginator/2);
//2. Рассчитываем количество страниц.
$page_count=ceil($items/$items_per_page);
//3. Если не задана страница в гет параметре то мы ее приравниваем к нулю.
if(!isset($_GET['page']))
  $_GET['page']=0;
$cur_page=intval($_GET['page']);
if($cur_page>=$page_count)$cur_page=$page_count-1;

//4. Рассчет первой страницы для вывода в пагинаторе
$start_page_pagination=$cur_page-$paginator_offset;
if($start_page_pagination<0)$start_page_pagination=0;
//5. Рассчет последней страницы для вывода в пагинаторе
$end_page_pagination=$start_page_pagination+$pages_in_paginator;
if($end_page_pagination>=$page_count)$end_page_pagination=$page_count-1;

if($end_page_pagination-$start_page_pagination<$pages_in_paginator && $page_count>$pages_in_paginator)
{
  $end_page_pagination=$page_count-1;
  $start_page_pagination=$end_page_pagination-$pages_in_paginator;
}
?>
<a href='?page=0'><<</a> | 
<?if($cur_page-1>=0){?>
<a href='?page=<?=$cur_page-1?>'><</a> | 
<?
}
for($i=$start_page_pagination;$i<=$end_page_pagination;$i++)
{
  $style="";
  $i1=$i+1;
  if($i==$cur_page)
    $style="style='color:red;'";
  
  echo "<a href='?page=$i' $style> $i1</a> | ";
}

if($cur_page+1<$page_count-1)
  {
  ?>
  <a href='?page=<?=$cur_page+1?>'>></a> | 
<?}?>
<a href='?page=<?=$page_count-1?>'>>></a> 

 

Раздел: PHP