Расширенная система навигации.

www.karman.com.ua
портал о хостинге в Украине
Хостинг + Украина = Karman.com.ua

Сайт от А до Б

/

Основы сайта

/

Интересные скрипты

/

Изучаем PHP

/

Как заработать на сайте

/

Раскрутка сайта

/

CMS


Расширенная система навигации. 

Еще по теме:
  wwjd.ru - христианская поисковая система
  Борьба оптимизаторов и поисковых систем
  Информация о SEO – оптимизаци под поисковые системы.
  SEO для начинающих: роботы поисковых систем – это люди
  Различие между оптимизацией под поисковые системы (SEO) и поисковым маркетингом (SEM)
  Способы улучшения позиций в поисковых системах
  Построение системы ссылок для SEO
  Позиции в поисковых системах, улучшите их

1. Введение

Нередко разработчики web-приложений сталкиваются с задачей постраничного разбиения данных, будь то большой массив записей или объемный текст. В процессе реализации программного решения задачи возникает вопрос – как же организовать перемещение пользователя по страницам так, чтобы это, с одной стороны, было удобно, то есть чтобы панель навигации выполняла свое прямое назначение, и, с другой стороны, имело бы приемлемый внешний вид.

2. О рассматриваемых в статье вопросах

Существует много вариантов реализации навигационной панели. Остановимся на нескольких, наиболее распространенных.

Пример 1. Простейшая навигационная система c выводом всех страниц для 20 страниц выглядит так

<< < 1 2 3 4 5 6 7 8 9 10 [12] 13 14 15 16 17 18 19 20 > >>

Пример 2. Навигационная система с выводом ограниченного ряда страниц для 20 страниц выглядит так
<< < … 8 9 10 11 [12] 13 14 15 … > >>

Навигация этого типа, например, применяется на таких известных поисковых системах, как Яndex и Google.

Пример 3. Навигационная система с реперными точками для 20 страниц выглядит так
1 … 5 … 10 11 [12] 13 14 15 … 20

К недостаткам систем первого типа следует отнести громоздкий вид при большом числе страниц. Системы второго типа часто не обеспечивают быстрого перемещения на большие расстояния. Системы третьего типа при некотором фиксированном расстоянии между реперными точками (опорными точками в массиве страниц, которые специально выделяются из общего ряда, чтобы сделать панель навигации более компактной) с ростом страниц, как и системы первого типа, становятся все более громоздкими.

В данной статье будет рассмотрена навигационная система с принципом дистанцирования, который заключается в том, что расстояние между реперными точками не является фиксированной величиной, а пропорционально уменьшается при движении от крайних страниц к текущей.

Пример 4. Навигационная система с принципом дистанцирования для 350 страниц выглядит так
<< < 100 ... 110 120 ... 122 123 124 [125] 126 127 128 ... 130 140 150 160 170 180 190 ... 200 300 > >>

Второй вопрос, которого мы коснемся в статье, будет касаться ссылок. Априори полагаем, что переменные от страницы к странице будут передаваться методом GET. Встает вопрос – каким образом эффективно менять значение текущей страницы в QUERY_STRING и формировать ссылку? Решение дает функция, которая позволяет изменять значение параметров, передаваемых в QUERY_STRING, не изменяя общий вид самой строки.

3. Детали реализации

Навигационная система реализована в виде класса. Это упрощает интеграцию в различные приложения.
Общий подход в формировании массива ссылок такой. Сначала формируется текстовая строка, содержащая панель навигации в заданном формате. Затем эта строка при помощи регулярных выражений преобразуется в массив ссылок, готовый к отображению.

Навигационная панель формируется из трех частей – середины, левой и правой. Середина представляет собой текущую страницу, окруженную сателлитами (страницами, удаленными от данной не более чем на задаваемое число, меньшее десяти). Правая и левая части формируются согласно принципу дистанцирования, сначала перечисляются страницы, удаленные на 10*k, 1<=k<=9 от текущей, затем на 100*m, 1<=m<=9, и так далее. В реализации функций, выводящих левую и правую части, применена рекурсия (вызов функции самой себя со специально подобранными параметрами, применяется, например, при обработке деревьев).

Перейдем к рассмотрению того, как формируются ссылки. Классу задается формат ссылки, например, в таком виде

[page]

где строка может иметь любой вид, за исключением двух тэгов [href] и [page], которые будут заменены соответственно на URL и номер страницы. URL формируются, исходя из системных переменных, дающих значение имени скрипта и строки QUERY_STRING. Строка QUERY_STRING обрабатывается отдельной функцией, которая меняет значение параметра page на заданный, не изменяя значений других параметров и, тем самым, сохраняя общий вид строки. Если в строке не было этого параметра, функция добавит его, внеся требуемые изменения.

4. Пример работы с классом

// Пример работы

include_once(“advanced_nav.class.php”)

// Определяем класс
$nav_class=new advanced_nav();

// Инициализация. Задаем начальные условия
$nav_class->init("[page]",125,350,3);

/*
Здесь:
[page]" – формат ссылки
125 – номер текущей страницы
350 – общее число страниц
3 – число сателлитов
*/

// Строим панель навигации
$nav_class->build_nav();

// Выводим панель навигации пользователю
$nav_class->print_nav();
?>


Чтобы обсудить это в форуме, нажмите здесь.


Хостинг-источник: http://karman.com.ua, http://webscript.ru/stories/07/04/08/0689928
  системы управления контентом и построение вашего интернет-бизнеса
  Антиспам фильтры: как находить правильное программное обеспечение для вашей системы
Есть вопросы о хостинге и о сайтах?
и получи ответ от профессионалов, которые обожают помогать людям :).
Еще по теме:
  Каталоги и поисковые системы – сравнительный анализ.
  В системе интернет-адресации ликвидирована важная ошибка
  Положительные стороны системы по имени CUNIC
  Почему доменные имена высшего уровня означают лучшую индексацию поисковыми системами
  Электронная платежная система Alertpay
  система интернет денег Liberty Reserve
  система электронных денег E-gold
  Яндекс деньги (yandex money) достоинства и недостатки системы
  Улучшение положения в поисковых системах: недоразумения относительно рейтинга страниц Google
  Как добиться, чтоб Ваш сайт быстро проиндексировали поисковые системы
  Будни клиента систем контекстной рекламы.
  12 советов по оптимизации вашего веб-сайта для поисковых систем.
  Оптимизация страниц для поисковых систем.

© СПД Праведно-Счастливый Аладдин Ярославович, 2004-2008. Все права защищены. При цитировании материалов ссылка на www.karman.com.ua обязательна. Редакция "Кармана" может не разделять точку зрения авторов статей, сообщений и ответственности за их содержание не несет.

Быстрый переход к содержимому сайта Karman.com.ua:
Новости, советы, углубленные знания, знания для новичков, законодательство, интересные скрипты, фотогалереи, отчеты, статьи о хостинге: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24
Часто задаваемые общие вопросы о хостинге, про FTP, PHPMyAdmin и MySQL, CPanel, Предустановленные скрипты, WHM, Cron, .htaccess, SSH, Паролирование директорий, О доменах, о работе с сайтом, о Раскрутке сайта, об Электронной почте, про Основы web-программирования: 0, 1
Энциклопедия основных терминов хостинга, программного обеспечения, железной стороны хостинга, технологий, электронной почты и доменов: 0, 1, 2, 3, 4, 5, 6
Сайты о хостинге (форумы, хостинг-провайдеры, студии веб-дизайна, домен-регистраторы, инструментарии в помощь вебмастеру): 0, 1, 2

Rambler's Top100