< первая << предыдущая .. 7 8 9 ... 15 17 18 ... 24 25 26 ... следующая >> последняя
то есть такими группами/порциями
сейчас моя пагинация имеет вид
< первая << предыдущая ... 7 8 9 10 11 ... следующая >> последняя
сам код:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- if($total_num_rows > 1) {
- /* Входные параметры */
- $num_rows = '9';
- $active_pg = $_GET['pg']; // текущая активная страница.
- $count_show_pages_pg = 10; // количество отображаемых страниц.
- $url_pg = "1";
- $url_page_pg = $pg_n; // адрес страницы с параметром
- if ($count_pages_pg > 1) { // Всё это только если количество страниц больше 1
- $left_pg = $active_pg - 1;
- $right_pg = $count_pages_pg - $active_pg;
- $end_pg = $start_pg + $count_show_pages_pg - 1;
- if ($end_pg > $count_pages_pg) {
- $start_pg -= ($end_pg - $count_pages_pg);
- $end_pg = $count_pages_pg;
- if ($start_pg < 1) $start_pg = 1;
- }
- if ($active_pg != 1) {
- $page_one = '<a href="'.$url_page_pg.'1" data-pg="1" title="'.(($_SESSION['lang']=='en') ? 'First'.' '.'page' : 'Первая'.' '.'страница').'">'.(($_SESSION['lang']=='en') ? 'First' : 'Первая').'</a>';
- $page_prev = ' <a href="'.(($active_pg == 2) ? $url_page_pg : $url_page_pg.($active_pg - 1)).'" data-pg="'.(($active_pg == 2) ? '' : ($active_pg - 1)).'" title="'.(($_SESSION['lang']=='en') ? 'Previous'.' '.'page' : 'Предыдущая'.' '.'страница').'">'.(($_SESSION['lang']=='en') ? 'Previous' : 'Предыдущая').'</a> ';
- $page_prev_tchk = ($active_pg > ($count_show_pages_pg/2+1)) ? ' <a href="'.(($active_pg == 2) ? $url_page_pg : $url_page_pg.($start_pg - 1)).'" data-pg="'.(($active_pg == 2) ? '' : ($start_pg - 1)).'" title="'.(($_SESSION['lang']=='en') ? 'Previous'.' '.'page' : 'Предыдущая'.' '.'страница').'">...</a> ' : '';
- }
- for ($i_pg = $start_pg; $i_pg <= $end_pg; $i_pg++) {
- if ($i_pg == $active_pg) {
- $pages .= '<span>'.$i_pg.'</span>';
- } else {
- $pages .= ' <a href="'.$url_page_pg.$i_pg.'"data-pg="'.$i_pg.'">'.$i_pg.'</a> ';
- }
- }
- if($end_pg+1 <= $count_pages_pg) {
- $pages_next_tchk = ($active_pg < ($count_pages_pg-($count_show_pages_pg/2))) ? ' <a href="'.$url_page_pg.($end_pg+1).'" data-pg="'.($end_pg+1).'" title="'.(($_SESSION['lang']=='en') ? 'Next'.' '.'page' : 'Следующая'.' '.'страница').'">...</a>' : '';
- }
- if ($active_pg != $count_pages_pg) {
- $pages_next =' <a href="'.$url_page_pg.($active_pg + 1).'" data-pg="'.($active_pg + 1).'" title="'.(($_SESSION['lang']=='en') ? 'Next'.' '.'page' : 'Следующая'.' '.'страница').'">'.(($_SESSION['lang']=='en') ? 'Next' : 'Следующая').'</a> ';
- $page_last = ' <a href="'.$url_page_pg.$count_pages_pg.'" data-pg="'.$count_pages_pg.'" title="'.(($_SESSION['lang']=='en') ? 'Last'.' '.'page': 'Последняя'.' '.'страница').'">'.(($_SESSION['lang']=='en') ? 'Last' : 'Последняя').'</a> ';
- }
- }
- if($posts > $_GET['onpage']) {
- $pagers = ($posts > 1) ? "<p class='pager'>".(($_SESSION['lang']=='en') ? 'Pages' : 'Страницы').": ".$page_one.$page_prev.$page_prev_tchk.$pages.$pages_next_tchk.$pages_next.$page_last."</p>" : '';
- }
- }