LINUX.ORG.RU

Варианты постраничной навигации

 


0

1
<?php for ($i = 100; $i > 0; $i--) $pages[] = $i; ?>

<?php
foreach ($pages as $page_id) {
  if ($page == $page_id) {
    echo ' '.$page;
  }
  elseif (in_array($page_id, array($pages[0], $pages[1], $pages[2], $pages[(sizeof($pages) - 1)], $pages[(sizeof($pages) - 2)], $pages[(sizeof($pages) - 3)]))) {
    $page_skip = 3;
    echo ' <a href="?page='.$page_id.'">'.$page_id.'</a>';
  }
  elseif (($page < ($page_id + 3)) && ($page > ($page_id - 3))) {
    $page_skip = 3;
    echo ' <a href="?page='.$page_id.'">'.$page_id.'</a>';
  }
  elseif ($page_skip > 0) {
    echo ' .';
    $page_skip--;
  }
}
?>

Все ли сделал правильно или можно как-то еще оптимизировать?

page=51, и получается, типа:

100 99 98 • • • 53 52 51 50 49 • • • 3 2 1

Хотелось бы знать, какой вариант постраничной навигации лучше выбрать? Этот просто так придумал, наобум, чтоб клево выглядил.

★★★★★

Последнее исправление: beastie (всего исправлений: 1)

какой вариант постраничной навигации лучше выбрать?

Лучше не использовать постраничную навигацию. Используй бесконечную подгрузку.

Black_Roland ★★★★
()
Ответ на: комментарий от Black_Roland

Лучше не использовать постраничную навигацию. Используй бесконечную подгрузку.

Но тогда чур, что б js запоминал место последнего скролла.

anonymous
()
Ответ на: комментарий от Frost

В этом смысле мне нравится как в вконтактике комментарии к топикам запилили - комбо из двух подходов. Я не пользуюсь, правда, может там какрй фэйл есть.

anonymous
()
Ответ на: комментарий от Black_Roland

бесконечную подгрузку

Убивать.

anonymous
()
Ответ на: комментарий от Frost

свёрток книги на любителя, и с прокруткой враньё получается

Зато хорошо затягивает посетителей. Если контент годный, то только через час поймешь что конца нет.

Black_Roland ★★★★
()
Ответ на: комментарий от anonymous

От задачи наверное зависит подход, гдето удобно. Пользуясь случаем спрошу как индексация поисковиков делает обход таких страниц? Забирает только первую подгруженную часть страницы?

Frost ★★★
()
Последнее исправление: Frost (всего исправлений: 1)
Ответ на: комментарий от Black_Roland

Используй бесконечную подгрузку

Руки отрывать.

anonymous
()
Ответ на: комментарий от Black_Roland

ты ведь знаешь на кого это рассчитано, если что-то серьёзное, к чему потом не раз вернёшься, то лучше наверное статика с разбиением на страницы

есть и другое применение (оправдание динамики) где контент постоянно меняется, например магазин товаров

Frost ★★★
()
Последнее исправление: Frost (всего исправлений: 3)

можно и так

|<< | < | 1 | 2 | A | 4 | Z | > | >> |
|                                    |
 ----------ширина области -----------

|<< | < | 8 | 9 | A | 11 | Z | > | >> |
|                                     |
 ----------ширина области ------------

где Z - количество ссылок необходимое для того чтобы заполнить область, но нужно учитывать и разрядность в таком случае

Frost ★★★
()
Последнее исправление: Frost (всего исправлений: 4)
Ответ на: комментарий от Black_Roland

За бан по ДНК.

Spoofing, нормальная навигация. // код не читай & сразу отвечай

Deleted
()
echo ' <a href="?page='.$page_id.'">'.$page_id.'</a>';

kek

Deleted
()

100 99 98 • • • 53 52 51 50 49 • • • 3 2 1

Текущая страница 51? Как мне побыстрому посмотреть 34 страницу (без манипуляций в адресной строке)?

shrub ★★★★★
()
Ответ на: комментарий от Black_Roland

Да-да, и нафига это в браузерах ctrl-f есть... Мы просто изгадим к чертям UX у всех юзеров, нам ведь пофиг.

Моя любимая пагинация - в OpenERP. Сделать так:

<= Страница N из XXX =>

при клике на N появляется поле ввода номера страницы, при клике на XXX - выпадающий список квантификации пагинации (по 20, по 100, все).

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 2)
Ответ на: комментарий от Black_Roland

Я открываю некую страницу, и хочу на ней что-то найти. Я не найду ничего в подгружаемой области, пока не домотаю до конца, и не факт, что OOM не вышвырнет мой браузер (ну, если х32).

Shadow ★★★★★
()
Ответ на: комментарий от Shadow

тогда можно вообще выпадающий список со всеми страницами сделать, и место сэкономить и голову не задурять :) стрелки право влево оставить только для поисковиков

Frost ★★★
()
Последнее исправление: Frost (всего исправлений: 1)
Ответ на: комментарий от anonymous

Но тогда чур, что б js запоминал место последнего скролла.

Родина дала им LocalStorage и History API, пиши, код. Нет, блин, хотим кушать какашку.

anon1984
()
Ответ на: комментарий от Shadow

Постраничная навигация тоже не способствует ctrl+f. Поиск должен быть на сайте, либо можно поспользоваться поиском по сайту от поисковиков.

Black_Roland ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.