Выбор навигации для сайта

Аватар пользователя RISK RISK 8 мая 2007 в 23:41

Этот документ — перевод статьи «Choices in Navigation — An Overview» , которая находиться по адресу: http://drupal.org/node/55610/. Перевод не совсем точный и немного измененный.

Структура Друпала позволяет использовать разные варианты навигации. Этот документ — краткий обзор этих вариантов с рассмотрением «за» и «против».

Рассмотрим следующие пять способов создания навигации на сайте:

  • Навигация с использованием Primary/Secondary меню.
  • Навигация с использованием модуля Menu.
  • Навигация с использованием модуля Book.
  • Навигация с использованием таксономии.
  • Навигация с использованием своего кода.

Есть и шестой способ: смешанный, т.е. создание навигации сайта используя несколько из перечисленных выше способов, такой подход — самое обычное дело. Например сайты drupal.org использует комбинацию навигации Primary/Secondary с модулем Book.

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

Роль тем в навигации

Друпал отделяет представление от содержания. Навигация обеспечивают работу с содержанием, в то время как представление определено в шаблоне темы. Например, стили CSS для эффектов при наведении мышки на ссылку — определяются в шаблоне темы. JavaScript обычно относится к этой же категории, хотя в некоторых случаях нужно будет ввести соответствующие изменения через меню настроек используемого модуля. Такое разделение означает, что меню навигации выглядит по-разному в зависимости от темы.

Примечание

Когда модуль, как говорят — стандартный, это значит, что он включен в установочный пакет Друпала и его нужно только активировать. Дополнительный модуль, тот, который должен быть загружен, установлен и активирован после установки Друпала.
Информацию относительно блоков Друпала можно найти на сайте drupal.org:
Block: controlling content in the sidebars.
Или на русском языке, на сайте setegnom.com здесь:
http://setegnom.com/document/33
и здесь:
http://setegnom.com/document/161/

Навигация с использованием Primary/Secondary меню

Primary/Secondary navigation — это возможность создать навигацию по сайту, которую Друпал делает доступной для разработчиков шаблонов. Эту навигацию можно настроить перейдя по ссылкам Administer — Site building — Menus — Settings. Обычно эта навигация размещена наверху, чтобы иметь возможность создавать горизонтальное меню. В действительности она может быть помещена куда угодно, это зависит от желания разработчика темы. Эта навигация — единственный способ сделать горизонтальное меню без редактирования шаблона темы.

Метод вставки пунктов меню в эту навигацию, различается среди шаблонов или версий Друпала. В некоторых случаях текстовая область предусматривает в шаблоне внесение HTML кода. В других случаях поля используются для названия меню и ссылок. Некоторые шаблоны обеспечивают через CSS показ меню в виде закладок (вкладок), если вы будете использовать разметку ul/li, чтобы создать структуру навигации.

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

Подробная информация

За

  • Позволяет создать горизонтальную навигацию без правки кода шаблона.
  • В зависимости от шаблона разрешает вставку JavaScript.

Против

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

Навигация с использованием модуля Menu

Модуль Menu — основное средство для создания и управления меню в блоках Друпала. Полное описание модуля можно найти в руководстве на сайте drupal.org по адресу:
http://drupal.org/handbook/modules/menu/
или на русском языке по адресу:
http://setegnom.com/document/163/

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

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

Подробная информация

За

  • Простое обновление через Administer → Site building → Menus, не требует использования HTML кода.
  • Можно определить на каких страницах и для кого показывать.

Против

  • Нельзя создать меню-закладки или разделители.
  • Навигационная линейка не всегда работает на уровне содержания.

Навигация с использованием модуля Book

Модуль Book — это стандартный модуль и назван так не совсем точно. Он создает действительно иерархическую организацию. Описание модуля приводится в контексте книги, но думайте о навигация сайта когда вы читаете это описание!

Когда страницы книги созданы, они размещаются иерархически и страницам автоматически добавляются ссылки, так же как другим навигационным элементам. Настройки размещения страницы объединены на экране создания документа, они упрощают создании цельной книги. Страницы книги — это стандартные документы Друпала и они могут содержать PHP код.

Модуль Book имеет определенное поведение. Новым страницам даются навигационные ссылки от исходной страницы и другие навигационные элементы, такие как ссылки «previous» и «next» (эти ссылки отображаются в виде заголовков предыдущего и следующего документов). Такое поведение или требует много усилий или делает эту опцию бесполезной.

Подробная информация

За

  • Одновременное создание содержания и навигации.
  • Автоматически создаются ссылки previous, next и up.

Против

  • Все должно находиться в пределах иерархии книги или навигационные линейки прервутся.
  • Имеет определенные настройки, которые не просто изменить.

Навигация с использованием таксономии

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

Самый простой способ сделать навигацию на основе таксономии — модуль Taxonomy Menu. Taxonomy Menu — дополнительный модуль и его нужно самостоятельно установать после установки Друпала. Это позволит превратить структуру таксономии в навигацию. Есть много других модулей которые используют таксономию, позволяя сделать из нее очень мощный способ организации вашего сайта.

Таксономия необходима для сайтов определенной архитектуры, но она избыточна для небольших сайтов.

Подробная информация

За

  • Очень удобна для сайтов с большим содержанием.
  • Упрощает управление содержанием для автоматического размещения страниц.
  • Навигационные линейки работают правильно только с некоторой доработкой.

Против

  • Большая часть возможностей таксономии используется с другими дополнительными модулями, что добавляет сложности.
  • Избыточна для небольших сайтов или редко обновляемых.

Навигация с использованием своего кода

Если ни один из предыдущих вариантов навигации вас не устраивает, вы можете сделать свое собственное меню. Для некоторых типов меню с использованием JavaScript — это единственный путь. Также такая навигация потребуется если вы захотите сделать меню с пунктами, которые не являются ссылками на документы, разделителями или некоторыми типами HTML тегов. Создание такой навигации предусматривает создание блока и вставку в него HTML кода.

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

Навигационные линейки не будут работать с таким типом меню если вы не будете использовать модули управляющие навигационными линейками.

Подробная информация

За

  • Непревзойденная гибкость.
  • Использование PHP сниппетов расширяет другие типы меню.
  • Единственный способ использовать пункты без ссылок и элементы HTML.

Против

  • Для изменения меню требуется вручную менять код.
  • Навигационные линейки не работают.
  • Сложные навигационные системы будут требовать сложного кодирования или большое количество исполнителей.

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

Комментарии

Аватар пользователя Dan Dan 9 мая 2007 в 0:17

> Навигационные линейки не работают.
Но можно заставить их работать Smile drupal_set_breadcrumb()

Аватар пользователя krock krock 3 марта 2010 в 19:02

Taxonomy Menu глючит. При апдейте порядок пунктов меню рушится. Можно вместо него юзать edit_term.