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

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

  • Меню с использованием основных и дополнительных ссылок
  • Модуль Menu
  • Модуль Book
  • Модуль Taxonomy
  • Использование своего кода

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

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

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

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

Отметьте: когда модуль, как говорят — «стандартный», это значит, что он включен в установочный пакет Друпала и его нужно только активировать. «Дополнительный» модуль тот, который нужно загружать и устанавливать отдельно.

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

Основные и дополнительные ссылки — это возможность создать навигацию по сайту, которую Друпал делает доступной для разработчиков шаблонов. Эту навигацию можно настроить перейдя на страницу «Управление → Строение сайта → Меню». Обычно эта навигация размещена вверху, чтобы иметь возможность создавать горизонтальное меню. В действительности она может быть помещена куда угодно, это зависит только от желания разработчика темы.

Метод вставки пунктов меню в эту навигацию различается среди шаблонов или версий Друпала. В некоторых случаях текстовая область предусматривает в шаблоне внесение ХТМЛ-кода. В других случаях поля используются для названия меню и ссылок. Некоторые шаблоны обеспечивают через ЦСС показ меню в виде вкладок, если вы будете использовать разметку ul/li чтобы создать структуру навигации.

При использовании такой навигации могут возникнуть проблемы с навигационной линейкой. Когда вы нажмёте на ссылку и перейдёте к нужной странице, путь ссылок в навигационной линейке очиститься и в ней появляется надпись «Первая страница». Избежать этого позволяют несколько дополнительных модулей работающих с навигационной линейкой:

  • Clickpath — история просмотров страниц
  • Custom Breadcrumbs — линейка навигации на основе типа документа
  • Node breadcrumb — навигационная линейка для документов
  • Menu Trails — привязка документов к пунктам меню на основе их типа или термина
  • Taxonomy Breadcrumb — навигационная линейка на основе таксономии
  • Посмотрите модули с меткой «Навигационная линейка»
За
  • Позволяет создать горизонтальную навигацию без правки кода шаблона
  • В зависимости от шаблона разрешает вставку ЯваСкриптов
Против
  • В зависимости от шаблона, возможно придётся вручную вставлять ХТМЛ-код
  • Навигационные линейки в некоторых случаях не будут работать

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

Модуль Menu (Меню) — основное средство для создания и управления меню в Друпале. Блоки меню можно сделать обязательными для всех страниц и ролей, задать их отображение только на определённых страницах или в зависимости от прав доступа. Вложенные меню можно делать развёрнутыми или свёрнутыми. Первоначально, меню создавалось только для ссылок на страницы сайта. В настоящее время можно создавать в меню ссылки и на станицы других сайтов.

За
  • Простое редактирование на странице «Управление → Строение сайта → Меню», не требует использования ХТМЛ-кода
  • Можно определить на каких страницах и для кого показывать
Против
  • Нельзя создать меню-закладки или разделители
  • Навигационная линейка не всегда работает на уровне содержания

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

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

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

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

За
  • Одновременное создание содержания и навигации
  • Автоматически создаются ссылки на предыдущую и следующую страницы, а также на главу в которую входит текущая страница
Против
  • Всё должно находиться в пределах иерархии книги или навигационные линейки прервутся
  • Имеет определённые настройки которые непросто изменить

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

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

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

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

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

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

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

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