Постраничная навигация

514
.
4 8 15 16 23 42
Помогите сделать так что бы страницы отображались так

1 |2 | 3 | 5 |..... | 53 | 54 | 55 |
Прикрепленные файлы:
.
ViROSS, Да там надо постраничку Джона прикрутить да и делов то.
.
Менделеев
/**
     * Постраничная навигация
     * За основу взята доработанная функция от форума SMF 2.x.x
     *
     * @param string $url
     * @param int $start
     * @param int $total
     * @param int $kmess
     *
     * @return string
     */
    public static function display_pagination($url, $start, $total, $kmess)
    {
        $neighbors = 55;
        if ($start >= $total)
            $start = max(0, $total - (($total % $kmess) == 0 ? $kmess : ($total % $kmess)));
        else
            $start = max(0, (int)$start - ((int)$start % (int)$kmess));
        $base_link = '<a class="pagenav" href="' . strtr($url, array('%' => '%%')) . 'page=%d' . '">%s</a><b>|</b>';
        
        if ($start > $kmess * $neighbors)
            $out[] = sprintf($base_link, 1, '1');
        if ($start > $kmess * ($neighbors + 1))
            $out[] = '<span style="font-weight: bold;">...</span>';
        for ($nCont = $neighbors; $nCont >= 1; $nCont--)
            if ($start >= $kmess * $nCont) {
                $tmpStart = $start - $kmess * $nCont;
                $out[] = sprintf($base_link, $tmpStart / $kmess + 1, $tmpStart / $kmess + 1);
            }
        $out[] = '<span class="currentpage"><b>' . ($start / $kmess + 1) . '</b></span>';
        $tmpMaxPages = (int)(($total - 1) / $kmess) * $kmess;
        for ($nCont = 1; $nCont <= $neighbors; $nCont++)
            if ($start + $kmess * $nCont <= $tmpMaxPages) {
                $tmpStart = $start + $kmess * $nCont;
                $out[] = sprintf($base_link, $tmpStart / $kmess + 1, $tmpStart / $kmess + 1);
            }
        if ($start + $kmess * ($neighbors + 1) < $tmpMaxPages)
            $out[] = '<span style="font-weight: bold;">...</span>';
        if ($start + $kmess * $neighbors < $tmpMaxPages)
            $out[] = sprintf($base_link, $tmpMaxPages / $kmess + 1, $tmpMaxPages / $kmess + 1);
        if ($start + $kmess < $total) {
            $display_page = ($start + $kmess) > $total ? $total : ($start / $kmess + 2);
            
        }

        return implode(' ', $out);
    }
.
4 8 15 16 23 42
fanatos,
.
ViROSS
.
╭∩╮ (`-`) ╭∩╮
Он видать интересуется, как вывести на страницу.
А делать это нужно так:
echo '<div class="topmenu">' . functions::display_pagination('index.php?', $start, $total, $kmess) . '</div>';


Вот пример из новостей JohnCMS 6.2.2
https://github.com/batumibiz/j ... #L263
.
fanatos
Менделеев
# ViROSS (25.01.2019 / 15:14)
fanatos,
Чем хелпать?
У тебя парсер или граб это с Столото,я правильно понимаю ?
Ну вот постраничку грабь тогда тоже
.
# ViROSS (24.01.2019 / 21:16)
Помогите сделать так что бы страницы отображались так

1 |2 | 3 | 5 |..... | 53 | 54 | 55 |
Сделай мне о дельного фтп юзера и кинь данные в личку, завтра сделаю джоновскую постраничку.
.
Менделеев
ViROSS, У тебя Кено уже с пострничкой, а если на сайте надо замени на то что я кидал свою постраничку
.
4 8 15 16 23 42
У меня граб, но добавляется в бд а потом уже выводится, поэтому постраничка не с граба.
Всего: 12