View file autoload/navigation.php

File size: 2.12Kb
<?php

// Текущая страница
function page($k_page = 1)
{
    $page = 1;

    if (isset($_GET['page']))
    {
        if ($_GET['page'] == 'end') $page = intval($k_page);
        else if (is_numeric($_GET['page'])) $page = intval($_GET['page']);
    }

    if ($page < 1) $page = 1;

    if ($page > $k_page) $page = $k_page;

    return $page;
}

// Количество страниц
function k_page ($k_post = 0, $k_p_str = 10)
{
    if ($k_post != 0)
    {
        $v_pages = ceil($k_post / $k_p_str);

        return $v_pages;
    }
    else return 1;
}

// Вывод номеров
function str($link = '?', $k_page = 1, $page = 1)
{
    if ($page < 1) $page = 1;

    echo '<div class="menu">Стр: ';

    # Ссылка на первую страницу
    if ($page != 1) echo '<a href="'. $link .'page=1">&laquo;</a> ';

    if ($page != 1) echo '<a href="'. $link .'page=1">1</a>';
    else echo '[1]';

    for ($ot=-3; $ot<=3; $ot++)
    {
        if ($page + $ot > 1 && $page + $ot < $k_page)
        {
            if ($ot == -3 && $page + $ot > 2) echo ' .. ';

            if ($ot != 0) echo ' <a href="'. $link .'page='. ($page + $ot) .'">'. ($page + $ot) .'</a>';
            else echo ' ['. ($page + $ot) .']';


            if ($ot == 3 && $page + $ot < $k_page - 1) echo ' .. ';
          }
      }

    if ($page != $k_page) echo ' <a href="'. $link .'page=end">'. $k_page .'</a>';
    else if ($k_page > 1) echo ' ['. $k_page .']';

    # Ссылка на последнюю страницу
    if ($page!=$k_page) echo ' <a href="'. $link .'page=end">&raquo;</a>';

    echo '</div>';
}

// Объявление постраничной навигации в скрипте
function nav_start($var, $limit)
{
    global $k_page, $page, $start;

    $k_page = k_page($var, $limit);
    $page = page($k_page);
    $start = $limit * $page - $limit;
}

// Отображение постраничной навигации
function view_nav($link = '?')
{
    global $k_page, $page;

    if ($k_page > 1) str($link, $k_page, $page);
}

?>