<!-- Отображение пострачного вывода -->
<?php
$N = 145;
$perPage = 10;
$currOffset = 70;
if (isset($_GET['st'])) $currOffset =
$_GET['st'];
// Количество соседних номеров страниц с каждой стороны,
// отображающихся рядом с текущей страницей
$xwidth = 2;
$currNum = 0;
$prevOffset = -1;
if ($currOffset - $perPage >= 0) $prevOffset = $currOffset - $perPage;
$nextOffset = 0;
if ($currOffset + $perPage < $N) $nextOffset = $currOffset + $perPage;
if ($prevOffset >= 0) {
print ' <a href="?st='.
$prevOffset.
'">Предыдущая страница</a> ';
}
// Флаги вывода левого и правого многоточия
$leftBlankOut = $rightBlankOut = false;
for ($i = 0; $i < $N; $i += $perPage) {
$currNum++;
// Манипулируем выводом левого многоточия
if ($i > 0 && ($i <= $currOffset - $xwidth * $perPage - $perPage)) {
if (!
$leftBlankOut) print '...';
$leftBlankOut = true;
continue;
}
// Манипулируем выводом правого многоточия
if ($i < ($N - $perPage) && ($i >= $currOffset + $xwidth * $perPage + $perPage)) {
if (!
$rightBlankOut) print '...';
$rightBlankOut = true;
continue;
}
if ($i == $currOffset) {
print ' <b>'.
$currNum.
'</b> ';
} else {
print ' <a href="?st='.
$i.
'">'.
$currNum.
'</a> ';
}
}
if ($nextOffset) {
print ' <a href="?st='.
$nextOffset.
'">Следующая страница</a> ';
}
?>
<!-- Отображение данных(объектов) текущей страницы -->
<b>Объекты</b>:<br>
<?php
$end = $currOffset + $perPage;
if ($end > $N) $end = $N;
for ($i = $currOffset; $i < $end; $i++) {
}
?>