ADBLOCK_MSG
Итак, предположим, что сайт на автомобильную тематику присоединяется к сайту на любую общую в качестве раздела "Автомобили". После импорта через J2XML к структуре категорий добавилась новая структура следующего вида:
Здесь введена корневая категория, соответствующая новому разделу - "Автомобили". В ней имеются 2 категории первого уровня вложенности - "О проекте" и "Новости проекта". Они по задумке должны соответствовать отдельному меню "Автомобили", содержащему общие сведения о разделе-проекте.
Еще 3 категории того же уровня - Honda, Audi и Ford - содержат подкатегории. Эти три категории должны сформировать еще одно меню, на этот раз двухуровневое - "Каталог авто". Выглядеть это должно примерно так:
Для начала, создадим оба меню с привязкой пунктов так, как это было на автомобильном сайте-источнике. Первое меню:
Второе меню:
Добавим для каждого из меню модули и опубликуем их в позиции по желанию (в моем случае - левый столбец). Меню отобразились именно так, как и планировалось. Однако линки, соответствующие пунктам и подпунктам, хоть и открывают правильные страницы, не соответствуют задуманной концепции. Рассмотрим, к примеру, первый пункт "О проекте" первого меню "Автомобили". Ссылка этого пункта имеет вид
http:/ogri.me/ru/o-proekte
.., в то время как по задумке URL должен включать алиас всего раздела:
http://ogri.me/ru/avtomobili/o-proekte
Хлебные крошки, соответственно, также не содержат промежуточного пункта раздела.
Попробуем создать вместо двух меню одно со структурой, точно соответствующей структуре категорий, и назовем его "Автомобили-ALL". Вот оно:
Создав и опубликовав модуль для этого меню, увидим на сайте следующую картину:
С линками и навигатором теперь все как задумывалось, с самим же меню - отнюдь. Все в одной куче, корневой пункт дублирует заголовок раздела, ну и пропал "Каталог авто". Не к тому мы стремились. Надо что-то изобретать.
Можно вспомнить, что в модуле меню есть опция "Начальный уровень". Попробуем сдвинуть начальный уровень объединенного меню на один вглубь. Изменим значение параметра с 1 на 2. Сохраним.
Вернувшись на сайт и перезагрузившись на главную страницу, обнаруживаем, что меню там отсутствует как класс. Появляется оно только в ветке "avtomobili/". Корневой пункт теперь не выводится. В принципе, моей задумке это отвечает, остается лишь вернуться к варианту двух раздельных меню, добавить в них корневой пункт "Автомобили" и в настройках модулей выставить "Начальный уровень" равный 2. Однако, что если впоследствии захочется выводить эти меню на страницах вне ветки "avtomobili/"? Данная методика не оставляет такой возможности, а значит, недостаточно универсальна.
И вот тут мы, наконец, подошли к теме статьи. Использование появившейся в Joomla начиная с версии 1.6 возможности выбора типа пункта меню как псевдонима другого пункта того же или другого меню позволяет решить поставленную задачу и сохранить полный контроль над привязкой меню к страницам сайта. Небольшая плата за это - тот факт, что для каждой опции придется создавать по два пункта меню, однако это нас не смущает, мы ведь не ленивые?
Итак, перейдем к окончательной реализации нашей задумки. Все необходимое для этого уже есть: меню "Автомобили-ALL", содержащее полную иерархию всех пунктов, распределенных по требуемым уровням (модуля для этого меню, кстати, не требуется), и еще два меню - "Автомобили" и "Каталог авто". При этом пункты первого меню имеют стандартные типы - "Материал", "Список материалов категории", "Блог категории" и т. д., как оно было на сайте-источнике. Тип пунктов остальных меню заменим на "Псевдоним пункта меню", и ссылаться они будут на соответствующие пункты первого меню.
Таким образом, ссылки и навигатор определяются уровнями общего меню, а вывод меню на сайте и привязка к страницам - остальными меню и настройками их модулей.
Вообще, опция назначать пунктам меню тип псевдонима другого пункта имеет более стандартное применение - например, дублировать основное меню в подвале сайта. Тогда, в случае изменения основного пункта, ссылающийся на него автоматически подхватит новое значение. Изначально, по-видимому, эта функция и была введена для клонирования меню. Но описанный в статье случай использования этой функции являет из себя пример того, что возможности, предоставляемые сайтостроителю разработчиками CMS Joomla, зачастую могут быть расширены для решения и других задач. Гибкость системы имеет место, что не может не радовать.
Новые
-
22.12.2020, 22:04
Кризис средней депрессии -
20.07.2020, 00:53
Joomla 3: Перенаправление на ту же страницу после авторизации -
23.06.2020, 04:53
Веллер: Борьба за счастье сносит цивилизацию -
31.05.2020, 02:38
Карантинный памфлет -
20.05.2020, 02:12
Секс во время чумы
Популярные
-
156966
Windows 7: Устранение неполадок Установщика Windows -
123629
Как активизировать учетную запись Администратора в Windows 7, 8 и 8.1 -
114655
Миграция с Joomla 1.5 на Joomla 2.5. Ч.2-1. Перенос jDownloads и jComments -
87662
Проверка целостности системных файлов Windows 7 -
87095
Активизация Windows Mail в Windows 7