Поиск по блогу

четверг, 30 января 2014 г.

Drupal: от установки - до сайта. Доступно и понятно. Часть 6: главное и боковые меню

Создадим, наконец, Главное меню и боковые подменю. Главное горизонтальное меню не будет иметь подпунктов (подменю). Отображение боковых подменю будет зависеть от выбранного пункта Главного меню. Кроме того, пункты меню будут зависеть от выбранного языка

В качестве помощников можно использовать модули:
  • Menu clone - https://drupal.org/project/menu_clone - из названия понятно, что модуль клонирует меню. Есть один момент: чтобы клонировать меню нужно войти в редактирование меню. Тогда появится вкладка Clone Menu.
  • Taxonomy menu - https://drupal.org/project/taxonomy_menu - позволяет в несколько кликов создать полноценное меню с иерархией из словаря таксономии.
Однако, мы не будем пользоваться этими помощниками и создадим все меню руками.

Создаем Главное меню

Главное меню, как мы определили в ч.4 будет состоять из пунктов: Главная, Новости, Публикации и Контакты.  Заходим Меню/Структура/Меню/Главное меню.
Пункт Главная у нас уже есть. Открываем вкладку Редактировать меню и в Настройке многоязычности выбираем свойство Переводится и локализуется.
Затем в пункте меню Главная кликаем по изменить и  в разделе Язык выбираем Русский.
Теперь нам будет доступна ссылка перевести в пункте меню Главная. Кликаем по ней и для каждого языка пишем свой перевод.
Обращаем внимание на свойство Показывать раскрытым. Чекбокс нужно выключить, т.к. мы не используем подменю (в данном случае не важно, что у пункта Главная нет подпунктов.)

Теперь можно перейти на фронт и увидеть как меняется пункт меню Главная в зависимости от языка.
Следующий пункт меню - Новости. Действуем также: Добавить ссылку.
Название ссылки меню - Новости
Путь - ссылка на таксономию Новости.
Однако не все так просто. У нас включены так называемые Чистые ссылки (Меню/Конфигурация/Поиск и метаданные/Чистые ссылки). Это значит, что все ссылки типа http://my_site/taxonomy/term/8 заменяются на http://my_site/novosti/arhiv или http://my_site/новости/архив если отключена транслитерация (Меню/Конфигурация/Поиск и метаданные/Синонимы URL/Настройки - чекбокс Транслитерировать перед созданием синонима ). И, если мы к примеру, укажем в качестве адреса "чистую ссылку", то все конечно же будет работать. До того момента, пока мы не переименуем термин таксономии (в данном случае, или, например, название ноды). Наш пункт меню не сможет найти старую ссылку. Поэтому, возьмите себе за правило, в качестве ссылки всегда использовать системный URL. Для того, чтобы найти системную ссылку по чистой ссылке переходим: Меню/Конфигурация/Поиск и метаданные/Синонимы URL и с помощью фильтра находим системную ссылку.

Путь taxonomy/term/xx
Показывать раскрытым- выключено
Язык - русский
Не забываем сделать перевод пункта меню

Следующие пункты меню - Публикации и Контакты создаем и переводим аналогично. Однако, хочу привлечь Ваше внимание к пункту Контакты. Этот пункт может иметь разные ссылки в зависимости от нашей задумки.
  • Если при клике на Контакты у нас должна появиться страничка с перечнем статей (Например, ссылка на страницу с Контактной информацией, страницу Наши магазины, страницу Наши представительства, страницу Наши сотрудники и т.д.) - то здесь используется термин таксономии и перечисленные страницы также создаются в категории Контакты.
  • Если же при клике на Контакты нам надо вывести всего-лишь одну страницу с контактной информацией, то, сначала создается такая страница, а затем в меню вводится путь к ней. Не на термин/категорию, а конкретно на страницу.

Создаем боковые меню

Боковые меню, как мы с Вами решили, будут зависимы и Главного меню. Это значит, что при выборе категории Новини у нас должно появиться боковое меню с подкатегориями (Актуально, В стране и т.д.), а если выбран пункт Главного меню Публикации - будут выводиться соответствующие подкатегории. Соответственно при выборе пунктов меню Главная и Контакты никакие подкатегории не выводятся.
Еще определимся, что по нашему будущему шаблону темы боковое меню будет слева.
Заходим в Меню/Структура/Меню/Добавить меню и создаем два меню:
Заголовок - Левое Новости и Левое Публикации. Не забываем про свойство Переводится и локализуется.
Набиваем ссылки в каждое меню свои. Однако наши меню не выводятся. Это потому, что мы еще не определили правила вывода для каждого меню.
Заходим в Меню/Структура/Блоки. Если Вы не меняли тему, а вы не меняли тему для фронта то мы все еще пользуемся темой/шаблоном Bartik. Левая боковая панель у этого шаблона переведена как Первая боковая панель. Подключаем наши меню Левое Новости и Левое Публикации в Первую боковую панель и сохраняемся.
Теперь кликаем по настройке блока меню Левое Новости. Нас интересует настройка: Показывать блок на определенных страницах. Наш блок будет выводиться только когда активен любой из пунктов и подпунктов Левого меню плюс пункт
Новости Главного меню.
Выбираем и в текстовом поле вводим пути указанных пунктов меню каждый в отдельной строке точно также как вводили пути для пунктов меню, например:
taxonomy/term/xx
taxonomy/term/yy
taxonomy/term/zz
...   
Правило ввода терминов читайте под текстовым блоком.
Также обратите внимание, что у заголовка блока тоже есть свои правила отображения.

Аналогично поступаем с блоком Левое Публикации. 
Иногда необходимо сделать так, чтобы пункт меню был неактивный. Приминимо к нашему случаю таких пунктов может быть два: Новости и Публикации Главного меню. К примеру новость не будут располагать в категории Новости. Ее расположат скорее в категории Актуально, В стране и т.д. Однако Друпал требует указания четкой ссылки и "приколы" типа /# или javascript:void(0); к сожалению не прокатывают. Однако в качестве решения можно предложить указывать адрес первого подпункта меню. В нашем случае следует поменять адрес пункта меню Новости на адрес пункта меню Актуально. Т.е. у нас будет два пункта меню с одним адресом.

Проверяем на фронте срабатывание правил отображения для каждого пункта меню.

Комментариев нет :

Отправить комментарий

Есть что сказать - скажи