Использование псевдонимов пунктов меню в JoomlaОпубликовано: 03.12.2013 17:47 Автор: Ogri Просмотров: 12833
В предыдущей статье я описал процесс переноса информационного наполнения сайта-источника на сайт-приемник и интегрирования его в виде отдельного раздела в структуру сайта-приемника. Компонент J2XML справился с этой задачей хорошо. Поставить ему оценку "отлично" не позволил тот факт, что, как отмечалось в конце статьи, его функционал не включает перенос и интеграцию структуры меню. Впрочем, воспроизвести ее на сайте-приемнике вручную не заняло много времени. А вот когда я начал привязывать пункты к соответствующим элементам контента, то столкнулся с некоей проблемой. Именно в процессе ее решения я впервые в своей практике познакомился с опцией, вынесенной в заголовок данной статьи.
Опишу задачу. На сайте-источнике было несколько меню. На сайте-приемнике нужно поместить их в том же виде - отдельными модулями, но, поскольку новый контент должен по задумке стать отдельным разделом, в URL и хлебных крошках все подразделы должны содержать название и алиас раздела. Меню же, соответствующие подразделам, при этом должны быть первого уровня. Однако, если выполняется второе условие, то не выполняется первое. Вот тут и помогла опция выбора типа пункта меню как псевдонима другого пункта.
Логика возникновения проблемы станет ясной, когда я проиллюстрирую ее конкретным примером. Для пущей наглядности заменю узкую тематику моего сайта-источника более популярной, а именно - автомобилями. Надеюсь, читатели, относящиеся к прекрасному полу, простят меня за тему, более типичную для интересов пола сильного )).
Итак, предположим, что сайт на автомобильную тематику присоединяется к сайту на любую общую в качестве раздела "Автомобили". После импорта через 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, зачастую могут быть расширены для решения и других задач. Гибкость системы имеет место, что не может не радовать.
Новые
-
20.07.2020 00:53
Joomla 3: Перенаправление на ту же страницу после авторизации -
13.02.2017 14:09
Joomla: как добавить свои языковые константы или переопределить существующие -
13.02.2017 13:23
Joomla: Интегрируем reCAPTCHA v2 (NO CAPTCHA) в JComments -
23.06.2016 10:48
Единая фильтрация вывода модуля mod_jcomments_latest -
13.09.2015 13:06
Постим иллюстрированные статьи Joomla-сайта на Facebook, используя OG-теги
Популярные
-
101687
Миграция с Joomla 1.5 на Joomla 2.5. Ч.2-1. Перенос jDownloads и jComments -
73897
Joomla: Интегрируем reCAPTCHA v2 (NO CAPTCHA) в JComments -
61619
Редактирование анимированных GIF-имиджей в Photoshop CS3 -
38278
Joomla: как добавить свои языковые константы или переопределить существующие -
34464
Единая фильтрация вывода модуля mod_jcomments_latest
Авторизация
Гитара
Гостевая колонка
Последние комментарии
-
Joomla: Интегрируем reCAPTCHA v2 (NO CAPTCHA) в JComments
-
스웨디시 09.06.2023 22:20
-
-
Как отцентрировать контент в блоке по вертикали
-
crypto casino no kyc 10.06.2023 10:28
View a invigorated broad of gaming with Crypto Gambling cassino. Find in the lead large with our ...
-
-
Кнопки социальных сетей в Joomla 2.5. Плавающая панель от Share42
-
водка казино 10.06.2023 02:55
Howdy would you mind letting me know which web host you're working with? I've loaded your blog in ...
-
-
Миграция с Joomla 1.5 на Joomla 2.5. Ч.2-1. Перенос jDownloads и jComments
-
canada drugs cialis 09.06.2023 22:30
buy cialis from europe buy cialis sweden canada drugs cialis: https://fforhimsvipp.com/ buy cialis ...
-
lordfilm 09.06.2023 21:30
lordfilm: https://wbw.lordfilmof.com/
-
-
Структура внутренних ссылок сайта на Joomla
-
Sofia Weaver 10.06.2023 05:04
We absolutely love your blog and find most of your post's to be exactly I'm looking for. Do you offer ...
-
-
Цифровые коды WEB (веб) цветов для сайта
-
Gnometopia.Org 10.06.2023 04:04
I'd like to find out more? I'd care to find out some additional information. Here is my web blog ...
-
cheapest 09.06.2023 23:46
Howdy exceptional website! Does running a blog like this require a large amount of work? I have ...
-
스웨디시 09.06.2023 23:00
The tool is gently (or vigorously) scraped and rubbed over the skin. Feel free to visit my site : ...
-
滷味 09.06.2023 22:35
With that in thoughts, you are absolutely entitled to want an outfit that lives up to the special ...
-
Подробнее...