Показать сообщение отдельно

  #14  
Старый 02.07.2007, 01:17
Joker-jar
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
С нами: 10088966

Репутация: 646


По умолчанию

А вот мой вариант уже непосредственно самого вывода списка страниц. Подходит, когда страниц много (обрезает там всякие штуки)

PHP код:
function pages($count,$current,$link)
{
  function 
dolink($num,$text,$link)
    {
      return 
"<a style=\"text-decoration: none\" href=\"".str_replace("%num",$num,$link)."\">$text</a>|";
    }
  if (
$count <= 1  || $current < 1 || $current > $count)
    return 
"";
  
$result = "|";
  
$left = "";
  
$right = "";
  
$center = "";
  
$ll = true;
  
$lr = true;
  for (
$i = 1; $i <= $count; $i++)
    {
      if (
$i >= $current - 2 && $i <= $current + 2)
        if (
$i == $current)
          
$center .= "<b>$i</b>|";
        else
          
$center .= dolink($i,$i,$link);
      if (
$i < 4)
        if (
$i >= $current - 2 && $i <= $current + 2)
          
$ll = false;
        else
          
$left .= dolink($i,$i,$link);
      if (
$i > $count - 3)
        if (
$i >= $current - 2 && $i <= $current + 2)
          
$lr = false;
        else
          
$right .= dolink($i,$i,$link);
    }
  if (
$current > 1)
    
$result .= dolink($current - 1,"<",$link);
  if (
$left != "")
    {
      
$result .= $left;
      if (
$ll && $current != 6)
        
$result .= "...|";
    }
  
$result .= $center;
  if (
$right != "")
    {
      if (
$lr && $current != $count - 5)
        
$result .= "...|";
      
$result .= $right;
    }
  if (
$current < $count)
    
$result .= dolink($current + 1,">",$link);
  return 
$result;
} 
$count - количество страниц
$current - номер текущей страницы
$link - формат ссылки (%num - тэг вставки номера страницы)

Например:

PHP код:
echo "<center>страница: ".pages(40,27,"index.php?page=%num")."</center>"; 

Последний раз редактировалось Joker-jar; 02.07.2007 в 01:19..
 
Ответить с цитированием