Итак, предположим, что сайт на автомобильную тематику присоединяется к сайту на любую общую в качестве раздела "Автомобили". После импорта через J2XML к структуре категорий добавилась новая структура следующего вида:

menu-aliases-01-categories

Здесь введена корневая категория, соответствующая новому разделу - "Автомобили". В ней имеются 2 категории первого уровня вложенности - "О проекте" и "Новости проекта". Они по задумке должны соответствовать отдельному меню "Автомобили", содержащему общие сведения о разделе-проекте.

Еще 3 категории того же уровня - Honda, Audi и Ford - содержат подкатегории. Эти три категории должны сформировать еще одно меню, на этот раз двухуровневое - "Каталог авто". Выглядеть это должно примерно так:

menu-aliases-02-menu-view

Для начала, создадим оба меню с привязкой пунктов так, как это было на автомобильном сайте-источнике. Первое меню:

menu-aliases-03-menu1

Второе меню:

menu-aliases-04-menu2

Добавим для каждого из меню модули и опубликуем их в позиции по желанию (в моем случае - левый столбец). Меню отобразились именно так, как и планировалось. Однако линки, соответствующие пунктам и подпунктам, хоть и открывают правильные страницы, не соответствуют задуманной концепции. Рассмотрим, к примеру, первый пункт "О проекте" первого меню "Автомобили". Ссылка этого пункта имеет вид

http:/ogri.me/ru/o-proekte

.., в то время как по задумке URL должен включать алиас всего раздела:

http://ogri.me/ru/avtomobili/o-proekte

Хлебные крошки, соответственно, также не содержат промежуточного пункта раздела.

Попробуем создать вместо двух меню одно со структурой, точно соответствующей структуре категорий, и назовем его "Автомобили-ALL". Вот оно:

menu-aliases-05-menu-all

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

menu-aliases-06-menu-view-2

С линками и навигатором теперь все как задумывалось, с самим же меню - отнюдь. Все в одной куче, корневой пункт дублирует заголовок раздела, ну и пропал "Каталог авто". Не к тому мы стремились. Надо что-то изобретать.

Можно вспомнить, что в модуле меню есть опция "Начальный уровень". Попробуем сдвинуть начальный уровень объединенного меню на один вглубь. Изменим значение параметра с 1 на 2. Сохраним.

menu-aliases-07-module

Вернувшись на сайт и перезагрузившись на главную страницу, обнаруживаем, что меню там отсутствует как класс. Появляется оно только в ветке "avtomobili/". Корневой пункт теперь не выводится. В принципе, моей задумке это отвечает, остается лишь вернуться к варианту двух раздельных меню, добавить в них корневой пункт "Автомобили" и в настройках модулей выставить "Начальный уровень" равный 2. Однако, что если впоследствии захочется выводить эти меню на страницах вне ветки "avtomobili/"? Данная методика не оставляет такой возможности, а значит, недостаточно универсальна.

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

Итак, перейдем к окончательной реализации нашей задумки. Все необходимое для этого уже есть: меню "Автомобили-ALL", содержащее полную иерархию всех пунктов, распределенных по требуемым уровням (модуля для этого меню, кстати, не требуется), и еще два меню - "Автомобили" и "Каталог авто". При этом пункты первого меню имеют стандартные типы - "Материал", "Список материалов категории", "Блог категории" и т. д., как оно было на сайте-источнике. Тип пунктов остальных меню заменим на "Псевдоним пункта меню", и ссылаться они будут на соответствующие пункты первого меню.

menu-aliases-08-set-alias

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

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

Оставлять комментарии могут только зарегистрированные пользователи.

Работая с этим сайтом, вы даете свое согласие на использование файлов cookie, необходимых для сохранения выбранных вами настроек, а также для нормального функционирования сервисов Google.