|
|
Модератор форума: Dimitro, LightInDarkness |
Форум Web раздел Web форум Модернизация постраничной навигации без базы! (За помощь+) |
Модернизация постраничной навигации без базы! |
Добрый вечер!
Попрошу модернизировать код постраничной навигации! Она выглядит так ( в начало [1] [2][3] в конец) Хотелось бы так или как нибудь на вашу усмотрение! Вот код: Code <?php function textpart($text, $count=100) { $number = @ $_GET['number']; # if($count > 0) { $text = wordwrap($text,$count, "[page]"); } $str = explode("[page]", $text); // Выясняем сколько страниц $count = count($str); //Выводим страницу empty ($number) ? $number = 1 : $number < 1 ? $number = 1 : ""; echo $str[($number)]; // Если текущая страница первая, то выводим продолжить for ($i = 1; $i < $count; $i++) { // Проверяем текущая ли это страница for ($i = 1; $i < $count; $i++) { if ($i == $number) { if ($i == ($count -1) and $count > 2) { echo " <b>[$i]</b>"; echo " <a href='?number=" . ($count - $i) . "'> в начало</a>"; } elseif ($i == ($count - ($count -1)) and $count > 2) { echo " <a href='?number=" . ($count -1) . "'>в конец </a>"; echo " <b>[$i]</b>"; } elseif ($i == $number) { echo " <b>[$i]</b>"; } } else { echo " <a href='?number=$i'>[$i]</a>"; } } } } $str = file_get_contents("text.txt"); textpart($str,0); ?> Вот содержимое text.txt: Code [page]<div class="post"> <div class="post_header"><a href="#">Добро пожаловать!</a></div> <div class="post_body" align="left"><p> новость 1 <br /> </p> <div class='news-post-down'> <p> <strong>Написал: friwa | 00.00.2011</strong> </p> </div> </div> <div class="post"> <div class="post_header"><a href="#">Добро пожаловать!</a></div> <div class="post_body" align="left"><p>новость <br /> </p> <div class='news-post-down'> <p> <strong>Написал: friwa | 00.00.2011</strong> </p> </div> </div> Тег [page] ограничивает количество страниц. В данный момент на странице две новости! За помощь +сану=)
Сообщение # 1 написано 28.11.2012 в 21:00
|
Code if ($i == ($count -1) and $count > 2) { //если первая страница echo " <b>[$i]</b>"; echo " <a href='?number=" . ($count - $i) . "'> в начало</a>"; } elseif ($i == ($count - ($count -1)) and $count > 2) { //если последняя страницастраница echo " <a href='?number=" . ($count -1) . "'>в конец </a>"; echo " <b>[$i]</b>"; } elseif ($i == $number) { //если в середине echo " <b>[$i]</b>"; } так вот код, в чем проблема?
DumpMe v1.0 - система автоматического переноса персонажей
Вышла в свет первая стабильная версия. Писать в скайп - razart8 |
Ну так... Отсчитывай n страниц от текущей для показа, выводи. Затем выводи многоточие. Снова отсчитывай.
Сможешь получить нечто вроде: [1] [2] [3] ... [10] [11] [12] [В конец]
Разработка сайтов различной сложности, дешево. Скайп в профиле.
Сообщение # 4 написано 29.11.2012 в 08:06
|
в своих проектах я использовал универсальную функцию по генерации навигационной линейки:
Code function ShowPageNavigator($LinkText, $Page, $AllPages) { $Page = intval($Page); $AllPages = intval($AllPages); if ($Page > $AllPages) $Page = 1; $text = '<table border="0" cellpadding="5" cellspacing="3"><tr>'; if ($AllPages < 16) { for ($i = 1; $i <= $AllPages; $i++) { if ($i == $Page) $text .= '<td class=NaviCurrent>' . $i . '</td>'; else $text .= '<td class=NaviButton><a href="' . $LinkText . $i . '" target="_self">' . $i . '</a></td>'; } } else { if ($Page < 6) { for ($i = 1; $i <= 6; $i++) { if ($i == $Page) $text .= '<td class=NaviCurrent>' . $i . '</td>'; else $text .= '<td class=NaviButton><a href="' . $LinkText . $i . '" target="_self">' . $i . '</a></td>'; } $text .= '<td>...</td>'; $text .= '<td class=NaviButton><a href="' . $LinkText . ($AllPages - 2) . '" target="_self">' . ($AllPages - 2) . '</a></td>'; $text .= '<td class=NaviButton><a href="' . $LinkText . ($AllPages - 1) . '" target="_self">' . ($AllPages - 1) . '</a></td>'; $text .= '<td class=NaviButton><a href="' . $LinkText . $AllPages . '" target="_self">' . $AllPages . '</a></td>'; } else if ($Page > ($AllPages - 5)) { $text .= '<td class=NaviButton><a href="' . $LinkText . '1" target="_self">1</a></td>'; $text .= '<td class=NaviButton><a href="' . $LinkText . '2" target="_self">2</a></td>'; $text .= '<td class=NaviButton><a href="' . $LinkText . '3" target="_self">3</a></td>'; $text .= '<td>...</td>'; for ($i = ($AllPages - 5); $i <= $AllPages; $i++) { if ($i == $Page) $text .= '<td class=NaviCurrent>' . $i . '</td>'; else $text .= '<td class=NaviButton><a href="' . $LinkText . $i . '" target="_self">' . $i . '</a></td>'; } } else { $text .= '<td class=NaviButton><a href="' . $LinkText . '1" target="_self">1</a></td>'; $text .= '<td class=NaviButton><a href="' . $LinkText . '2" target="_self">2</a></td>'; $text .= '<td class=NaviButton><a href="' . $LinkText . '3" target="_self">3</a></td>'; $text .= '<td>...</td>'; $text .= '<td class=NaviButton><a href="' . $LinkText . ($Page - 1) . '" target="_self">' . ($Page - 1) . '</a></td>'; $text .= '<td class=NaviCurrent>' . $Page . '</td>'; $text .= '<td class=NaviButton><a href="' . $LinkText . ($Page + 1) . '" target="_self">' . ($Page + 1) . '</a></td>'; $text .= '<td>...</td>'; $text .= '<td class=NaviButton><a href="' . $LinkText . ($AllPages - 2) . '" target="_self">' . ($AllPages - 2) . '</a></td>'; $text .= '<td class=NaviButton><a href="' . $LinkText . ($AllPages - 1) . '" target="_self">' . ($AllPages - 1) . '</a></td>'; $text .= '<td class=NaviButton><a href="' . $LinkText . $AllPages . '" target="_self">' . $AllPages . '</a></td>'; } } $text .= '</tr></table>'; return $text; } для форматирования добавляем в CSS: Code td.NaviButton { border: 1px solid #aaaaaa; background-color: #cccccc; } td.NaviCurrent { border: 1px solid black; background-color: #bbbbff; } Пример использования: echo ShowPageNavigator("http://www.server.ru/news.php?page=", 10, 18); выведет линейку для десятой страницы новостей а всего страниц - 18. Если страниц 15 или меньше то показывает все номера страниц, если больше 15, в виде: [1] [2] [3] ... [9] [10] [11] ... [16] [17] [18] Но это только сама линейка. отбора самих записей по страницам здесь нет.
мне фиолетово какой у меня рейтинг, можете поставить хоть минус миллион...
Не в плюсах счастье... Помогаю тем, кто хочет чтобы ему помогли, а не сделали за него. |
| |||
| |||