<?php
class pagination {
public $limit, $page, $pages, $total;
/*
* Парметры:
* $elements - кол-во элементов на странице
* $total - всего записей, которые нужно разбить по страницам
* $p - текущая страница. Лучше всего получать из $_GET
*/
function __construct($elements, $total, $p) {
$pages = ceil($total / $elements);
if($p < 1) $p = 1;
if($p > $pages) $p = $pages;
$start = abs($p * $elements) - $elements;
$this -> limit = " LIMIT {$start}, {$elements}";
$this -> page = $p;
$this -> pages = $pages;
$this -> total = $total;
}
/* Выводим панель навигации по страничкам */
function printPages($params = '', $max = 10) {
$p = $this -> page;
$pages = $this -> pages;
$total = $this -> total;
$sel = 'unsel';
$return = "";
if($total > $max) {
$return .= '<div class="list" style="padding: 5px 8px;"><div class="pagination"><span class="pagination-s"><div>';
/*
$return .= "<div class=\"pagination-nav\">";
if(($p - 1) > 0) {
$prevPage = ($p - 1);
$return .= "<a class=\"pagination-n\" href=\"{$params}p={$prevPage}\">Предыдущая</a>";
} else {
$return .= "<div class=\"pagination-n\">Предыдущая</div>";
}
$return .= "</div><div class=\"pagination-nav\">";
if(($p + 1) <= $pages) {
$nextPage = $p + 1;
$return .= "<a class=\"pagination-n\" href=\"{$params}p={$nextPage}\">Следующая</a>";
} else {
$return .= "<div class=\"pagination-n\">Следующая</div>";
}
$return .= "</div></div>"; */
$return .= '<table class="pagination-list" style="width: 100%;"><tbody><tr>';
if($p > 3) { $return .= "<td><a href=\"{$params}p=1\">1</a></td>"; }
if(($p - 2) > 0) { $pprevPage = $p - 2; $return .= "<td><a href=\"{$params}p={$pprevPage}\">{$pprevPage}</a></td>"; }
if(($p - 1) > 0) { $prevPage = $p - 1; $return .= "<td><a href=\"{$params}p={$prevPage}\">{$prevPage}</a></td>"; }
$return .= '<td><span class="pagination-out">'.$p.'</span> ';
if(($p + 1) <= $pages) { $nextPage = ($p + 1); $return .= "<td><a href=\"{$params}p={$nextPage}\">{$nextPage}</a></td>"; }
if(($p + 2) <= $pages) { $nnextPage = ($p + 2); $return .= "<td><a href=\"{$params}p={$nnextPage}\">{$nnextPage}</a></td>"; }
if($p != $pages and $p != $pages - 1 and $p != $pages - 2) { $endPage = $pages; $return .= "<td><a href=\"{$params}p={$endPage}\">{$endPage}</a></td>"; }
$return .= '</tr></tbody></table>';
$return .= '</span></div></div></div>';
}
return $return;
}
}