Функция постраничной навигации на PHP

16:07 6 июня 2016

Одно из основных преимуществ серверных языков программирования - возможность легкого разбития контента на страницы. На PHP довольно просто реализовть функцию постраничной навигации.

Рассмотрим пример:

<?php

function page_nav($uri, $page, $num_pages) {

    $back = $page-2;

    $fwd = $page+2;

      if($back>1) {

        $links .= '<a href="'.$uri.'">1</a>';

      }

      if($back>2) {

        $links .= '<a href="'.$uri.'&amp;page=2">2</a>';

      }

      if($back>4) {

        $links .= '<span>...</span>';

      }

    $from=($back>0)?$back:1;

    $to=($fwd<=$num_pages)?$fwd:$num_pages;

    for($i=$from;$i<=$to;$i++) {

      if($page!=$i) {

        $links .= '<a href="'.$uri.'&amp;page='.$i.'">'.$i.'</a>';

      } else {

        $links .= '<span class="current">'.$i.'</span>';

      }

    }

      if($fwd<$num_pages-3) {

        $links .= '<span>...</span>';

      }

      if($fwd<$num_pages-1) {

        $links .= '<a href="'.$uri.'&amp;page='.($num_pages-1).'">'.($num_pages-1).'</a>';

      }

      if($fwd<$num_pages) {

        $links .= '<a href="'.$uri.'&amp;page='.($num_pages).'">'.($num_pages).'</a>';

      }

    return '<div class="pagination">'.$links.'</div>';

    }

Пример вызва функции:

<?php

$total = 20;

$page = (abs(intval($_GET['page']))>0)?abs(intval($_GET['page'])):1;

$page = ($page<$total)?$page:$total;

echo page_nav('?',$page,$total);

А вот так будет выглядеть результат ее работы:

постраничній вывод


Теги: php Сниппет
Категория Web-мастер   |   0 комм.
Нет результатов.