Хак постраничного вывода в joomla 1.0.*

Тема в разделе "Программирование", создана пользователем sectus, 17.06.2008.

  1. sectus
    Offline

    sectus Недавно здесь => Cпециалист <=

    Регистрация:
    19.04.2006
    Сообщения:
    1 210
    Симпатии:
    46
    Пол:
    Мужской
    Выводит по такому типу:
    << 1, 2, 3, ...,50, 51, 52, ..., 98, 99, 100 >>

    Файл includes/pageNavigation.php
    Функцию function writePagesLinks полностью заменить на эту

    Код (PHP):
    1. function writePagesLinks( $link )
    2.       {
    3.         $txt = '';
    4.         $displayed_pages = 3; //можно менять
    5.         $total_pages = $this->limit ? ceil( $this->total / $this->limit ) : 0;
    6.         $this_page = $this->limit ? ceil( ($this->limitstart+1) / $this->limit ) : 1;
    7.  
    8.     $start_loop = $this_page - floor( $displayed_pages/2);
    9.     $stop_loop = $this_page + floor( $displayed_pages/2);
    10.  
    11.         $link .= '&amp;limit='. $this->limit;
    12.  
    13.     if (!defined( '_PN_LT' ) || !defined( '_PN_RT' ) )
    14.       {
    15.       DEFINE('_PN_LT','&lt;');
    16.       DEFINE('_PN_RT','&gt;');
    17.       }
    18.  
    19.         $pnSpace = '';
    20.         if (_PN_LT || _PN_RT) $pnSpace = "&nbsp;";
    21.  
    22.     $array_pages=array();
    23.     for ($i=1;$i <= $displayed_pages;$i++)
    24.       $array_pages[]=$i;
    25.  
    26.     for ($i=$total_pages;$i >= $total_pages-$displayed_pages+1;$i--)
    27.       $array_pages[]=$i;
    28.  
    29.         for ($i=$start_loop; $i <= $stop_loop; $i++)
    30.           {
    31.       $array_pages[]=$i;
    32.       }
    33.  
    34.     $array_pages = array_unique($array_pages);
    35.     sort($array_pages);
    36.         if ($this_page > 1)
    37.           {
    38.             $page = ($this_page - 2) * $this->limit;
    39.             $txt .= '<a href="'. sefRelToAbs( "$link&amp;limitstart=$page" ) .'" class="pagenav" title="'. _PN_PREVIOUS .'">'. _PN_LT . $pnSpace . _PN_PREVIOUS .'</a> ';
    40.           }
    41.         else
    42.           {
    43.             $txt .= '<span class="pagenav">'. _PN_LT . $pnSpace . _PN_PREVIOUS .'</span> ';
    44.           }
    45.         $txt2='';
    46.         $last_i=0;
    47.         foreach ($array_pages as $i)
    48.           {
    49.           if ($i>=1&&$i<=$total_pages)
    50.             {
    51.         if ($last_i+1!=$i)$txt2.=", ...";
    52.             $page = ($i - 1) * $this->limit;
    53.             $txt2.=",";
    54.             if ($i == $this_page)
    55.               {
    56.                 $txt2 .= ' <span class="pagenav">'. $i .'</span>';
    57.               }
    58.             else
    59.               {
    60.               $txt2 .= ' <a href="'. sefRelToAbs( $link .'&amp;limitstart='. $page ) .'" class="pagenav"><strong>'. $i .'</strong></a>';
    61.               }
    62.             $last_i=$i;
    63.           }
    64.           }
    65.     $txt.= substr($txt2, 1);
    66.         if ($this_page < $total_pages)
    67.           {
    68.             $page = $this_page * $this->limit;
    69.             $end_page = ($total_pages-1) * $this->limit;
    70.             $txt .= ' <a href="'. sefRelToAbs( $link .'&amp;limitstart='. $page ) .' " class="pagenav" title="'. _PN_NEXT .'">'. _PN_NEXT . $pnSpace . _PN_RT .'</a>';
    71.           }
    72.         else
    73.           {
    74.             $txt .= ' <span class="pagenav">'. _PN_NEXT . $pnSpace . _PN_RT .'</span>';
    75.           }
    76.         return $txt;
    77.       }
     
  2.  
  3. Fanamura
    Offline

    Fanamura Доброта

    Регистрация:
    12.03.2007
    Сообщения:
    5 094
    Симпатии:
    158
    Пол:
    Мужской
    Ответ: Хак постраничного вывода в joomla 1.0.*

    Спасибо:)
     
  4. Offline

    xpyctjawii Недавно здесь

    Регистрация:
    28.04.2008
    Сообщения:
    59
    Симпатии:
    0
    Пол:
    Мужской
    Спасибо! А случайно не подскажешь как убрать < [Предыдущая][Следующая] >, если в разделе только одна страница?! Где-то видел... только уже не помню где... Обыскался на форуме...
     

Поделиться этой страницей

Загрузка...