Навигация по страницам - нужно дополнить код

Тема в разделе "Как сделать...", создана пользователем acelotuse, 29 фев 2012.

  1. acelotuse

    acelotuse

    Регистр.:
    31 мар 2009
    Сообщения:
    312
    Симпатии:
    37
    Доброго дня всем!
    Вопрос новичка, который никак не может постичь даже азы )))
    Есть такой код, который установлен на ДЛЕ форуме, он позволяет выводить рядом с названием темы номера страниц.
    dfdfdfd.jpg
    Вот сам код:
    PHP:
    $last_page = @ceil($row['post'] / $forum_config['post_inpage']);
    $navp "";
    $inum 1;
    $pagegz 7;
    if (
    $last_page 1) {
        for (
    $i=0$i<$last_page$i++) {
            if (
    $inum $pagegz) {
                
    $inum $last_page$i $inum$dot "...";
            }
            else { 
    $dot ""; }
            if (
    $forum_config['mod_rewrite']) {
                
    $topic_last_link "{$dot}<a href='/forum/topic_{$row[tid]}/{$inum}'> {$inum}</a>";
            }
            else {
                
    $topic_last_link "<a href='/?do=forum&showtopic={$row[tid]}&cstart={$inum}'>{$dot} {$inum}</a>";
            }
            
    $navp .= $topic_last_link.",";
            
    $inum ++;
        }
    }
    if (
    $last_page 1) { $paggg " - Страницы:";}
    else { 
    $paggg "";} 
    Дело в том, что если страниц темы больше 7, то он выводит рядом с названием ссылки на них так:
    1,2,3,4,5,6,7,...17
    Но для посетителя бывают важны именно последние страницы обсуждения, поэтому хотелось бы, чтобы и ДО точек и ПОСЛЕ них выдавало одинаковое количество ссылок с номерами страниц, например, по 6, вот так:
    1,2,3,4,5,6, ... 12,13,14,15,16,17

    Спасибо за отзывы.
     
  2. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    Ну так воткни проверку на определенное количество до последней страницы...
    А вообще бредовый код. Нафига дважды подряд проверять
    PHP:
    if ($last_page 1}
     
  3. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
  4. Anu

    Anu Постоялец

    Регистр.:
    19 окт 2007
    Сообщения:
    137
    Симпатии:
    13
    PHP:
    // кол-во элементов на страницу
    $count7;
    // всего элементов в базе
    $total 123;
     
    // сколько страниц показывать вначале и в конце
    $show 5;
     
    $pages ceil($total $count);
     
    // первые страницы
    for($i =1;$i<($show+1);$i++) {
        if(
    $pages == $show) break;
        
    $links[] = '<a href="/link'.$i.'">'.$i.'</a>';
    }
     
    $links [] = '..';
     
    // последние страницы
    for($i =1;$i<($show+1);$i++) {
        if(
    $pages == $show) break;
        
    $page_num = ($pages$show $i);
        
    $links[] = '<a href="/link'.$page_num.'">'.$page_num.'</a>';
    }
     
    echo 
    $links str_replace('..,''...'implode(', '$links));
     
    /* на выходе имеем:
    1, 2, 3, 4, 5, ... 14, 15, 16, 17, 18
    */
    Ссылки только замените на нужные Вам
     
    acelotuse нравится это.
  5. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    я бы добавил еще пару условий...
    PHP:
    // первые страницы
    for($i =1;$i<($show+1);$i++) {
    if(
    $pages <= $i) break;
        if(
    $pages == $show) break;
        
    $links[] = '<a href="/link'.$i.'">'.$i.'</a>';
    }
     
    $links [] = '..';
     
    // последние страницы
    for($i =1;$i<($show+1);$i++) {
        if(
    $pages == $show) break;
        
    $page_num = ($pages$show $i);
        if(
    $pages <= $page_num) break;
        
    $links[] = '<a href="/link'.$page_num.'">'.$page_num.'</a>';
    }
    ну так... на всякий случай....
     
    acelotuse нравится это.