За последние 24 часа нас посетил 22891 программист и 1265 роботов. Сейчас ищут 788 программистов ...

Постраничный вывод результатов (он же пейджер)

Тема в разделе "PHP для новичков", создана пользователем 440Hz, 16 авг 2007.

  1. creage

    creage Активный пользователь

    С нами с:
    12 мар 2008
    Сообщения:
    131
    Симпатии:
    0
    Адрес:
    Киев
    ...и если вы используете мой пейджер, то она не будет висеть одной ). это уже все учтено.
     
  2. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.340
    Симпатии:
    44
    Э.... на 1-й и второй странице дублирующийся контент? Представляю свое ох... когда прочитав 20 сообщений с 1-й страницы и перейдя на вторую я начну читать 19 тех же сообщений...
    Для поисковиков единственная удобоваримая схема - это нормальный стек новостей на несколько страниц и их архив с уже жесткой привязкой. Стек будет индексироваться по-разному постоянно, с другой стороны его вообще можно закрыть от индексации, отдав только архив.
     
  3. creage

    creage Активный пользователь

    С нами с:
    12 мар 2008
    Сообщения:
    131
    Симпатии:
    0
    Адрес:
    Киев
    вы такой умный - поделитесь кодом скроллера, которым пользуетесь?)
     
  4. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.340
    Симпатии:
    44
    Э... именно код или идею? Идею я уже сказал - дайте людям спокойно пролистать страницы (уж в каком направлении они нумерованы - это даже не так важно), а для поисковиков держите отдельный "архив", где есть строгая привязка к урлам.
    Код показать не могу. О том, как мы реализовали навигацию внешне... ну вот так:
    [​IMG]
     
  5. creage

    creage Активный пользователь

    С нами с:
    12 мар 2008
    Сообщения:
    131
    Симпатии:
    0
    Адрес:
    Киев
    ну, в принципе, можно анализировать хедеры и отдавать ботам другой контент, но как-то не_спортивно имхо.
     
  6. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.340
    Симпатии:
    44
    За это банят на поисковиках =(
     
  7. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    дело было вечером, делать было нечего...получился
    простой пэйджер
    Я его не тестил
    по идее должен выдавать такую картинку
    [1][2]...[4][5][6][7][8]...[10][11]
    PHP:
    1. <?
    2. // $data - array ([page_num]=> кол-во публикаций на странице, [page_block]=>Кол во ссылок в среднем блоке)
    3. // $n - текущая страница вида 1,2,3,4 ... и тд
    4. // $tpl - это шаблон ссылки, например index.php?act=go&page= , тогда ссылка будет index.php?act=go&page=1, index.php?act=go&page=2 и тд
    5. // $all - всего публикрций
    6. function pager($data,$n,$tpl,$all) {
    7.   $max=ceil($all/$data['page_num']);
    8.   $ot=$n-2;
    9.   if ($ot<=0)$ot=1;
    10.   $po=$ot+$data['page_block']-1;
    11.   if ($po>$max) $po=$max;
    12.   $page='';
    13.   if ($po==$max) $ot=$po+1-$data['page_block'];
    14.   if ($ot==2) $page.='...';
    15.   if ($ot>2) {
    16.       $page.="<a href='".$tpl."1'>[1]</a>";
    17.       if ($ot>3) $page.="<a href='".$tpl."2'>[2]</a>";
    18.       $page.='...';
    19.   }
    20.   for($i=$ot;$i<=$po;$i++) {
    21.       if ($n==$i) {
    22.         $page.="<b>[$i]</b>";
    23.       }else {
    24.         $page.="<a href='".$tpl."$i'>[$i]</a>";
    25.      }
    26.   }
    27.   if ($po<=$max-2){
    28.        $page.='...';
    29.        $page.="<a href='".$tpl.$max."'>[$max]</a>";
    30.       if ($po<$max-2) $page.="<a href='".$tpl.($max-1)."'>[".($max-1)."]</a>";
    31.   }
    32.   if ($po==$max-1) $page.='...';
    33.   return $page;
    34. }
    35.  
    36. // вызов
    37. print pager(array('page_num'=>10,'page_block'=>6),$_GET['page'],'index.php?page=',173);
    38. ?>
     
  8. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    начал тестить, нашёл ошибку..
    PHP:
    1.  
    2. <?
    3. function pager($data,$n,$tpl,$all) {
    4.   $max=ceil($all/$data['page_num']);
    5.   if ($max<=0) $max=1;
    6.   $ot=$n-2;
    7.   if ($ot<=0) $ot=1;
    8.   $po=$ot+$data['page_block']-1;
    9.   if ($po>$max) $po=$max;
    10.   $page='';
    11.   if ($po==$max) $ot=$po+1-$data['page_block'];
    12.   if ($ot<=0) $ot=1;
    13.   if ($ot==2) $page.='...';
    14.   if ($ot>2) {
    15.       $page.="<a href='".$tpl."1'>[1]</a>";
    16.       if ($ot>3) $page.="<a href='".$tpl."2'>[2]</a>";
    17.       $page.='...';
    18.   }
    19.   for($i=$ot;$i<=$po;$i++) {
    20.       if ($n==$i) {
    21.         $page.="<b>[$i]</b>";
    22.       }else {
    23.         $page.="<a href='".$tpl."$i'>[$i]</a>";
    24.      }
    25.   }
    26.   if ($po<=$max-2){
    27.        $page.='...';
    28.        if ($po<$max-2) $page.="<a href='".$tpl.($max-1)."'>[".($max-1)."]</a>";
    29.        $page.="<a href='".$tpl.$max."'>[$max]</a>";
    30.   }
    31.   if ($po==$max-1) $page.='...';
    32.   return $page;
    33. }
    34. ?>
     
  9. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    о, Боже, какой страх...
     
  10. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    тсс, всё норм =)
     
  11. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
  12. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Какую? >;-p
    Яж уже удалил сообщение 0о
     
  13. Anonymous

    Anonymous Guest

    Всю.
    Критикуя - предлагайте.
     
  14. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    молодец, хороший мальчик
     
  15. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Бяки вы..
    как же меня гуглы найдут..
     
  16. dr.xray

    dr.xray Активный пользователь

    С нами с:
    23 дек 2008
    Сообщения:
    7
    Симпатии:
    0
    Доброго времени суток.

    Возникла проблемка, а именно: есть код (кхм! Не ругать, я неделю назад первый раз в жизни
    Код (Text):
    1. <?php
    написал):


    index.php :
    Код (Text):
    1. <?php
    2. include "inc/header.inc.php";
    3. include "inc/config.inc.php";
    4. include "form_search.php";
    5.  
    6.  
    7. @mysql_select_db("search") or die("Невозможно соединится с базой данных!");
    8.  
    9.     if (isset($p_header))  {
    10.         if (@$p_header != NULL) {
    11.                 $find_name = $p_header;
    12.  
    13.  
    14. @mysql_query ( "SET NAMES UTF8" );
    15.     $query = "SELECT * FROM `searchdata` WHERE `header` LIKE '%$find_name%'";
    16.     $result = mysql_query($query);
    17.     $x = 0;
    18.         $num_rows = mysql_num_rows($result);
    19.         if ( $num_rows == 0) {
    20.         print "<center><h3>По вашему запросу ничего не найдено. Попробуйте изменить запрос.</h3></center>\n";
    21.         } else {
    22.                                                 while ($x < mysql_num_rows($result)) : //Рисуем всё найденное
    23.                                                         $Header = mysql_result($result, $x, 'header');
    24.                                                         $Date = mysql_result($result, $x, 'add_date');
    25.                                                         $Short_Story = mysql_result($result, $x, 'shortstory');
    26.                                                         $Link = mysql_result($result, $x, 'links');
    27.                                                         print "<font size=\"small\">$Header</font>";
    28.                                                         print "<font size=\"smalest\">$Date</font><br>";
    29.                                                         print "<font size=\"small\">$Short_Story</font>\n";
    30.                                                         print "$Link\n";
    31.                                                         $x++;
    32.                                                 endwhile;
    33.                         }
    34.                         mysql_close();
    35.                         }
    36.  
    37.  
    38.  
    39.                 }
    40.  
    41.  
    42. print "</body>\n";
    43. print "</html>\n";
    44. ?>
    в кратце: form_search.php отправляет через POST $p_header и по нему из базы делаем выборку. Естественно, для этого нужен постраничный просмотр. Я перепробовал все варианты (вот последний, не удивляйтесь, я уже пробовал все что можно поэтому тут такие "камменты"):

    Код (Text):
    1. <?php
    2. include "inc/header.inc.php";
    3. include "inc/config.inc.php";
    4. include "form_search.php";
    5. @mysql_select_db("search") or die("Невозможно соединится с базой данных!");
    6.        
    7. if (empty($p_header)){
    8. //if (empty($_get['header'])) {
    9. //    $find_name = @$p_header;
    10. // } else {
    11.  $find_name = $_get['header'];
    12. //    $find_name = $p_header;
    13. }
    14. //    @$GetHeader = $_get['header'];
    15. //    if (isset($p_header))  {
    16. //    if (@$p_header != NULL) {
    17. //      $find_name = $p_header;
    18.         echo "$find_name<br>";
    19. // ==============================================================
    20.  
    21. function link_bar($page, $pages_count, $find_name)
    22. {
    23. for ($j = 1; $j <= $pages_count; $j++)
    24. {
    25. // Вывод ссылки
    26. if ($j == $page) {
    27. echo ' <a style="color: #808000;" ><b>'.$j.'</b></a> ';
    28. } else {
    29. echo ' <a style="color: #808000;" href='.$_SERVER['PHP_SELF'].'?page='.$j.'&header='.$find_name.'>'.$j.'</a> ';
    30. }
    31. // Выводим разделитель после ссылки, кроме последней
    32. // например, вставить "|" между ссылками
    33. if ($j != $pages_count) echo ' ';
    34. }
    35. return true;
    36. } // Конец функции
    37.  
    38. // Подключение к базе данных
    39. mysql_connect('localhost', 'wp_admin', 'fhntvbq') or die('error! Нет соединения с сервером mysql!');
    40. mysql_select_db('search') or die('error! Нет соединения с базой данных!');
    41.  
    42. // Подготовка к постраничному выводу
    43. $perpage = 10; // Количество отображаемых данных из БД
    44. if (empty($_get['page']) || ($_get['page'] <= 0)) {
    45. $page = 1;
    46. } else {
    47. $page = (int) $_get['page']; // Считывание текущей страницы
    48. }
    49. // Общее количество информации
    50. $count = mysql_num_rows(mysql_query("SELECT * FROM `searchdata` WHERE `header` LIKE '%$find_name%'")) or die('error! Записей не найдено!');
    51. $pages_count = ceil($count / $perpage); // Количество страниц
    52.  
    53. // Если номер страницы оказался больше количества страниц
    54. if ($page > $pages_count) $page = $pages_count;
    55. $start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД
    56.  
    57. // Вызов функции, для вывода ссылок на экран
    58. link_bar($page, $pages_count, $find_name);
    59.  
    60. // Вывод информации из базы данных
    61. echo '<p><b>Постраничный вывод информации</b></p>';
    62. // ==============================================================================
    63. echo "\$perpage = $perpage<br>"; //проверка
    64. echo "\$start_pos = $start_pos<br>"; //порверка
    65.  
    66.  
    67. @mysql_query ( "SET NAMES UTF8" );
    68.     $query = "SELECT * FROM `searchdata` WHERE `header` LIKE '%$find_name%' LIMIT $start_pos, $perpage";
    69.     $result = mysql_query($query);
    70.     $x = 0;
    71. //      if (mysql_num_rows($result) == 0) {
    72. //      print "<center><h3>По вашему запросу ничего не найдено. Попробуйте изменить запрос.</h3></center>\n";
    73. //      } else {
    74.                                                 while ($x < mysql_num_rows($result)) : //Рисуем всё найденное в табличку
    75.                                                         $Header = mysql_result($result, $x, 'header');
    76.                                                         $Date = mysql_result($result, $x, 'add_date');
    77.                                                         $Short_Story = mysql_result($result, $x, 'shortstory');
    78.                                                         $Link = mysql_result($result, $x, 'links');
    79.                                                         print "<font size=\"small\">$Header</font>";
    80.                                                         print "<font size=\"smalest\">$Date</font><br>";
    81.                                                         print "<font size=\"small\">$Short_Story</font>\n";
    82.                                                         print "$Link\n";
    83.                                                         $x++;
    84. //                                                      $find_name = $new_find_name;
    85.                                                 endwhile;
    86. //                      }
    87.                         mysql_close();
    88. //                      }
    89.  
    90.  
    91.  
    92. //              }
    93. print "</body>\n";
    94. print "</html>\n";
    95. ?>
    так вот, все разбивается на страницы, но в ссылке, ведущей на вторую (третью, четвертую, etc) страницу через GET не передается переменная $header, потому что, как я понимаю, форма form_search.php ее "обнуляет". Самая проблема в том, что все это должно работать по принципу использующемуся в гугле: ввели данные в форму, отправили, обновилась страница, имеем вверху форму а снизу данные запроса, которые, если нужно, разбиваем на страницы. Ну не получается :( Либо 2-я страница уже пустая, либо на 2-й и последующей - данные те же, что и на первой.

    Подскажите варианты, если есть. плиз.
     
  17. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    ну, передавай $header, в чем проблема-то?
     
  18. dr.xray

    dr.xray Активный пользователь

    С нами с:
    23 дек 2008
    Сообщения:
    7
    Симпатии:
    0
    не передается :(
    Обновляется страница, подгружается форма:

    Код (Text):
    1. <?php
    2. include "inc/config.inc.php";
    3. print "<div align='center'>\n";
    4. print "<br />\n";
    5. print "<img border=\"0\" src=\"http://www.google.com.ua/logos/holiday08_2.gif\"></img>\n";
    6. print "<form action=\"index.php\" method=\"post\" target=\"_top\">\n";
    7. print "<input type=text name=\"header\" maxlength=150 size=80><br>\n";
    8. print "<input type=submit class=submit value=\"Search\">\n";
    9. print "</form>\n";
    10. print "</div>\n";
    11. ?>
    и $header = ""

    Это так, как я себе понимаю сейчас...
     
  19. karakh

    karakh Активный пользователь

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    PHP:
    1. print "<input type=text name=\"header\" [b]value=\"$header\"[/b] maxlength=150 size=80><br>\n";
     
  20. dr.xray

    dr.xray Активный пользователь

    С нами с:
    23 дек 2008
    Сообщения:
    7
    Симпатии:
    0
    Йоу!!! Заработала!!!

    Пришлось правда еще много править, но...

    karakh
    Огромнейшее вам человеческое спасибо :)
     
  21. V1T

    V1T Активный пользователь

    С нами с:
    7 окт 2008
    Сообщения:
    311
    Симпатии:
    0
    Адрес:
    Крым
    440Hz , Вы по сложнее нечего не придумали для новичков? :evil: Может быть оно и рабочее и работает лучше , но тут все так всё поняли
     
  22. akrinel

    akrinel Активный пользователь

    С нами с:
    26 янв 2009
    Сообщения:
    955
    Симпатии:
    1
    Адрес:
    Spb
    Когда 440hz это постил я был новичком (впрочем я и сейчас не гуру :), но все понял и даже использовал местами
     
  23. lexinfo

    lexinfo Активный пользователь

    С нами с:
    16 янв 2007
    Сообщения:
    51
    Симпатии:
    0
    Адрес:
    Ростов-на-Дону
    Зачем заниматься быдлокодингом если листинг класса опубликовали на пред странице (creage). Чуть поправил, убрал лишний код с его модулей. Вот, вставляйте и пользуйтесь.
    PHP:
    1. <?
    2. Class Scroller {
    3.  
    4.      public $itemsCount = 0,
    5.      $limit,
    6.      $pageCount,
    7.      $currentPage,
    8.      $currentPageNumber,
    9.      $currentPageName,
    10.      $offset,
    11.      $direction,
    12.      $firstPage,
    13.      $lastPage,
    14.      $formName;
    15.  
    16.      function Scroller($itemsCount, $itemsPerPage, $formName, $direction, $page = 0){
    17.          $this->formName = empty($formName) ? "page" : $formName;
    18.          $this->page = empty($page) ? $_REQUEST[$this->formName] : $page;
    19.          $this->itemsCount = (int)$itemsCount;
    20.          $this->limit = (int)$itemsPerPage;
    21.          $this->pageCount = ceil($this->itemsCount / $this->limit);
    22.          if((int)$direction < 0){
    23.              $this->currentPage = !(int)$this->page && $this->page != "0" ? $this->pageCount : $this->page;
    24.              if($this->currentPage > $this->pageCount){
    25.                  $this->currentPage = $this->pageCount;
    26.              } else {
    27.                  if($this->currentPage < 1) $this->currentPage = 1;
    28.              }
    29.              $this->currentPageNumber = $this->pageCount - $this->currentPage + 1;
    30.              $this->currentPageName = $this->currentPageNumber;
    31.              if($this->pageCount && $this->currentPage < $this->pageCount){
    32.                  $this->isFullPage = $this->itemsCount % $this->limit ? 1 : 0;
    33.                  $this->offset = $this->itemsCount % $this->limit + ($this->pageCount - $this->currentPage - $this->isFullPage) * $this->limit;
    34.              } else {
    35.                  $this->offset = 0;
    36.              }
    37.              $this->direction = "-1";
    38.              $this->firstPage = $this->pageCount;
    39.              $this->lastPage = 1;
    40.          } else {
    41.              $this->currentPage = !(int)$this->page && $this->page != "0" ? 1 : $this->page;
    42.              if($this->currentPage > $this->pageCount){
    43.                  $this->currentPage = $this->pageCount;
    44.              } else {
    45.                  if($this->currentPage < 1) $this->currentPage = 1;
    46.              }
    47.              $this->currentPageNumber = $this->currentPage;
    48.              $this->currentPageName = $this->currentPage;
    49.              $this->direction = "+1";
    50.              $this->firstPage = 1;
    51.              $this->lastPage = $this->pageCount;
    52.              $this->offset = $this->pageCount ? ($this->currentPage - 1) * $this->limit : 0;
    53.          }
    54.      }
    55.  
    56.      function show($params = 0){
    57.          $sReturn = "";
    58.          if($this->pageCount >1){
    59.              if(isset($params["mode"])) $this->mode = $params["mode"];
    60.              $this->navCount = (int)$params["navCount"] ? $params["navCount"] : 5;
    61.              $this->firstNav = $this->currentPageNumber - floor($this->navCount / 2);
    62.              if($this->firstNav < 1) $this->firstNav = 1;
    63.              $this->lastNav = $this->firstNav + $this->navCount - 1;
    64.              if($this->lastNav > $this->pageCount){
    65.                  $this->lastNav = $this->pageCount;
    66.                  $this->firstNav = $this->lastNav - $this->navCount;
    67.                  if($this->firstNav < 1) $this->firstNav = 1;
    68.              }
    69.              $this->separator = isset($params["separator"]) ? $params["separator"] : "&hellip;";
    70.              $qupos = strpos($params["targetUrl"], "?");
    71.              $this->urlSeparator = $qupos !== false ? "&" : "?";
    72.              if(isset($params["tagName"])) $sReturn .= "<" . $params["tagName"] . " " . $params["tagAttr"] . " >";
    73.              $this->title = isset($params["title"]) ? $params["title"] : "Страницы: ";
    74.              if($this->mode == "html"){
    75.                  $sReturn .= $this->title;
    76.              } else {
    77.                  $sReturn = "<title>" . $this->title . "</title>";
    78.                  if(isset($params["leftDivider"])) $sReturn .= "<left-divider>" . $params["leftDivider"] . "</left-divider>";
    79.                  if(isset($params["rightDivider"])) $sReturn .= "<right-divider>" . $params["rightDivider"] . "</right-divider>";
    80.              }
    81.              if($this->currentPage != $this->firstPage){
    82.                  $backName = isset($params["backName"]) ? $params["backName"] : "&larr; Назад";
    83.                  $sReturn .= $this->_printNavItem("back", $backName, $params["targetUrl"], $this->urlSeparator, $this->currentPage - $this->direction);
    84.                  if($this->mode == "html" && isset($params["leftDivider"])) $sReturn .= $params["leftDivider"];
    85.              }
    86.              if($this->firstNav > 1){
    87.                  $sReturn .= $this->_printNavItem("first", 1, $params["targetUrl"], $this->urlSeparator, $this->firstPage);
    88.                  if($this->firstNav > 2)    $sReturn .= $this->_printNavItem("separator", $this->separator);
    89.              }
    90.              for ($i = $this->firstNav; $i <= $this->lastNav; $i++) {
    91.              $current = "";
    92.              $ipage = $this->direction < 0 ? $this->pageCount - $i + 1 : $i;
    93.              if($ipage == $this->currentPage) $current = "current";
    94.              $sReturn .= $this->_printNavItem($current, $i, $params["targetUrl"], $this->urlSeparator, $ipage);
    95.              }
    96.              if($this->lastNav < $this->pageCount){
    97.                  if($this->lastNav < $this->pageCount - 1) $sReturn .= $this->_printNavItem("separator", $this->separator);
    98.                  $sReturn .= $this->_printNavItem("last", $this->pageCount, $params["targetUrl"], $this->urlSeparator, $this->lastPage);
    99.              }
    100.              if($this->currentPage != $this->lastPage){
    101.                  if($this->mode == "html"){
    102.                      $sReturn .= isset($params["rightDivider"]) ? $params["rightDivider"] : "|";
    103.                  }
    104.                  $forwardName = isset($params["forwardName"]) ? $params["forwardName"] : "Дальше &rarr;";
    105.                  $sReturn .= $this->_printNavItem("forward", $forwardName, $params["targetUrl"], $this->urlSeparator, $this->currentPage + $this->direction);
    106.              }
    107.              if(isset($params["tagName"])) $sReturn .= "</" . $params["tagName"] . " >";
    108.          }
    109.          return $sReturn;
    110.      }
    111.  
    112.      function _printNavItem($type, $name, $url = "", $urlSeparator = "", $pageNum = ""){
    113.          $sReturn = "";
    114.          if($this->mode == "html"){
    115.              if($type == "separator"){
    116.                  $sReturn = "\n<span class=\"separator\">".$name."</span>\n";
    117.              } elseif($type != "current" && (int)$pageNum) {
    118.                  $sReturn .= "\n<a href=\"";
    119.                  $sReturn .= !empty($url) ? $url : "./";
    120.                  if($pageNum != $this->firstPage) $sReturn .= $urlSeparator.$this->formName."=".$pageNum;
    121.                  $sReturn .= "\"";
    122.                  if(empty($type) || $type == "first" || $type == "last") $sReturn .= " class=\"scrollerPage\"";
    123.                  $sReturn .= ">".$name."</a>\n";
    124.              } else {
    125.                  $sReturn = "\n<span class=\"scrollerCurrentPage\">".$name."</span>\n";
    126.              }
    127.          } else {
    128.              $sReturn = "<page ";
    129.              if(isset($type)) $sReturn .= 'type="'.$type.'" ';
    130.              if($type != "current" && !empty($pageNum)){
    131.                  $sReturn .= 'href="';
    132.                  !empty($url) ? $sReturn .= $url : $sReturn .= "./";
    133.                  if($pageNum != $this->firstPage) $sReturn .= $urlSeparator.$this->formName.'='.$pageNum;
    134.                  $sReturn .= '" num="'.$name.'" ';
    135.              }
    136.              $sReturn .= "/>";
    137.          }
    138.          return $sReturn;
    139.      }
    140.  }
    141.  
    142.  
    143. //инициализация и вывод пэйджера
    144.  $page=isset($_GET['page'])?$_GET['page']:1;
    145.      // init scroller
    146. //1520-сколько всего записей
    147. //10-сколько записей на странице
    148. //'page'-GET параметр, которому будет присваиваться номер страницы
    149. //$page-собственно сам номер страницы
    150.      $oScroller = new Scroller(1520, 10, 'page', $page);
    151.      // scroller params
    152.      $hScrollerParams = array(
    153.          "targetUrl" => 'pager.php',
    154.          "navCount" => 5,
    155.          "mode" => "html",
    156.          "title" => "Страницы: ",
    157.          "backName" => "Пред",
    158.          "forwardName" => "След"
    159.      );
    160.  
    161.      echo $oScroller->show($hScrollerParams);
    162.  ?>
     
  24. creage

    creage Активный пользователь

    С нами с:
    12 мар 2008
    Сообщения:
    131
    Симпатии:
    0
    Адрес:
    Киев
    2lexinfo
    Вы забыли указать использование таких важных свойств класса, как

    PHP:
    1. "limit" => $oScroller->limit,
    2. "offset" => $oScroller->offset
    Фактически, это ключевые его свойства, ради них весь класс и пишется :)
     
  25. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия