Использование псевдонимов пунктов меню в JoomlaОпубликовано: 03.12.2013 17:47 Автор: Ogri Просмотров: 12198
В предыдущей статье я описал процесс переноса информационного наполнения сайта-источника на сайт-приемник и интегрирования его в виде отдельного раздела в структуру сайта-приемника. Компонент 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-теги
Популярные
-
60478
Редактирование анимированных GIF-имиджей в Photoshop CS3 -
43321
Joomla: Интегрируем reCAPTCHA v2 (NO CAPTCHA) в JComments -
42802
Миграция с Joomla 1.5 на Joomla 2.5. Ч.2-1. Перенос jDownloads и jComments -
32968
Единая фильтрация вывода модуля mod_jcomments_latest -
30733
Joomla: как добавить свои языковые константы или переопределить существующие
Авторизация
Гитара
Гостевая колонка
Последние комментарии
-
Joomla: Интегрируем reCAPTCHA v2 (NO CAPTCHA) в JComments
-
lawyer 26.01.2023 21:22
%% my site: lawyer: https://www.forum.xmu.hu/index.php?action=profile;u=425573
-
-
Joomla: Сливаем два сайта в один при помощи компонента J2XML
-
quilt 26.01.2023 21:26
%% my web site - quilt: http://51.75.160.67/ticket/177210
-
nikpayam.Com 26.01.2023 21:25
%% my web page - cerebral palsy attorney (nikpayam.Com: https://nikpayam.com/author/reubengodle/)
-
birth defect case 26.01.2023 21:22
%% Also visit my web page - birth defect case: https://www.punterforum.it/profile.php?id=882402
-
Joyce 26.01.2023 21:20
%% Also visit my website ... asbestos litigation [Joyce: https://gravesales.com/author/marianparml/]
-
-
Миграция с Joomla 1.5 на Joomla 2.5. Ч.2-1. Перенос jDownloads и jComments
-
Repairing Glass 26.01.2023 21:26
%% Feel free to visit my web page :: Repairing Glass ...
-
asbestos Law 26.01.2023 21:21
%% Visit my web page - asbestos Law ...
-
-
Структура внутренних ссылок сайта на Joomla
-
만세마사지 26.01.2023 21:25
It's an amazing paragraph in favor of all the internet users; they will obtain benefit from it I ...
-
Cbd Rutland 26.01.2023 21:25
%% Here is my page Cbd Rutland ...
-
Brady 26.01.2023 21:19
%% Also visit my web blog; netsuite consulting companies (Brady ...
-
Комментарии
and sources back to your blog? My blog is in the exact same niche as yours
and my visitors would certainly benefit from some of the information you present here.
Please let me know if this ok with you. Cheers!
Feel free to visit my site ... ee [Janette]
when new comments are added- checkbox and from now on each time a comment is added I receive four emails
with the same comment. Perhaps there is a means you can remove
me from that service? Many thanks!
Have a look at my web blog: seroquel [vipdaba.com]
Here is my web page Call Girls in Lahore
at the internet the simplest factor to consider of.
I say to you, I definitely get annoyed whilst people think about concerns that
they plainly do not recognise about. You managed to hit the nail upon the top
as well as defined out the entire thing with no need side effect ,
people can take a signal. Will likely be again to get more.
Thank you
Feel free to surf to my webpage - Lahore Babes
posted at this site is genuinely fastidious.
Feel free tо visit my paցe - zithromax ⲣrices (zithromax4ᥙs.toρ)
Сame hегe by searching fοr пунктов
I too am an aspiring blog blogger but I'm still new to the whole thing.
Do you have any tips and hints for novice blog writers?
I'd definitely appreciate it.
Feel free to surf to my webpage ... Lahore
Call Girls
Disgrace on the seek engines for not positioning this
put up higher! Come on over and seek advice from my site .
Thank you =)
Feel free to visit my web blog: Call Girls in lahore