Форумы портала PHP.SU » PHP » Пользовательские функции » Функция: Постраничная навигация

Страниц (1): [1]
 

1. vitaliy_mad - 08 Ноября, 2010 - 23:18:46 - перейти к сообщению
getPages (string url,integer pCount, integer pDisplay,string getVar='p')

Параметры:
url - адрес страницы куда будут направлять ссылки
pCount - количество страниц всего
pDisplay - Количество отображаемых страниц
getVar - переменная Используемая в GET для передачи номера страницы

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.         function getPages($url,$pCount,$pDisplay,$getVar='p') {
  3.         // getPages('http://www.example.com/',155,15,'page');
  4.                 if (strpos($url,'?')!==false) {
  5.                         list($url,$params)=split('\?',$url);
  6.                         $params=split('&',$params);
  7.                         unset($pars);
  8.                         foreach($params as $par) {
  9.                                 list($name,$value)=split('=',$par);
  10.                                 if ($name===$getVar) continue;
  11.                                 $pars[]=$name.'='.$value;
  12.                         }
  13.                         $pars=implode('&',$pars);
  14.                 }
  15.                 if (isset($_GET[$getVar]))
  16.                         $currentPage=$_GET[$getVar];
  17.                 else
  18.                         $currentPage=1;
  19.                 $startPage=$currentPage-round($pDisplay/2);
  20.                 if ($startPage<=0)
  21.                         $startPage=1;
  22.                 if ($startPage>1) {
  23.                         echo '
  24.                         <a href="'.$url.'?'.$pars.((strlen($pars)>0)?'&':'').$getVar.'=1" title="To page 1"><<</a>
  25.                         <a href="'.$url.'?'.$pars.((strlen($pars)>0)?'&':'').$getVar.'='.($startPage-1).'" title="To page '.($startPage-1).'">< ...</a> ';
  26.                 }
  27.                 for ($i=$startPage;($i<$startPage+$pDisplay) and ($i<=$pCount);$i++) {
  28.                         if ($i==$currentPage) {
  29.                                 echo '<span class="curpage">'.$i.'</span> ';
  30.                                 continue;
  31.                         }
  32.                         echo '<a href="'.$url.'?'.$pars.((strlen($pars)>0)?'&':'').$getVar.'='.$i.'">'.$i.'</a> ';
  33.                 }
  34.                 if ($i<$pCount) {
  35.                         echo '<a href="'.$url.'?'.$pars.((strlen($pars)>0)?'&':'').$getVar.'='.($i).'" title="To page '.($i).'">... ></a> ';
  36.                         echo '<a href="'.$url.'?'.$pars.((strlen($pars)>0)?'&':'').$getVar.'='.($pCount).'" title="To page '.($pCount).'">>></a> ';
  37.                 }
  38.  
  39.         }
  40.  
  41. ?>


Пример:
PHP:
скопировать код в буфер обмена
  1. getPages('http://....../pages.php',150,10,'p');

 

Powered by ExBB FM 1.0 RC1