Несколько фокусов с CMS Joomla! Исправление ссылки на главную/домашнюю в горизонтальном меню старого стиля
- Опубликовано: 25.02.2017
- Автогенерация и отображение эскизов фотоальбомов модулем RokBox
- Доработка горизонтального меню-списка для динамического разворачивания подпунктов
- Единая кнопка «Сохранить изменения» для корзины Интернет-магазина VirtueMart
- Изменение/снятие ограничений на длину строки поиска и его попутная доработка
- Исправление ссылки на главную/домашнюю в горизонтальном меню старого стиля
- Модернизация сайтов на Joomla! старых версий 1.5/2.5 до актуальной 3.6
- Отображение заглушки «сайт в разработке» для всех и всего сайта для избранных
- Подсветка пункта меню типа «внешняя ссылка», или Как сделать ссылки на категории VirtueMart
- Преобразование адресов сайта в дружественные (SEF) для внешних нужд
- Реализация двуязычного сайта с постраничным переключением языков
- Удаление значка печати из списка статей при сохранении его на странице статьи
Исправление ссылки на главную/домашнюю в горизонтальном меню старого стиля
Конечно, для любого меню в Joomla! («Расширения» > «Менеджер модулей» > модуль типа mod_mainmenu) в качестве его стиля («Параметры» > «Параметры модуля» > «Стиль меню») лучше использовать «Список», который всегда можно с помощью CSS сделать хоть вертикальным, хоть горизонтальным, с любыми маркерами. В этом случае какой бы псевдоним не имела главная (домашняя) страница, ссылка на неё в меню (тип пункта меню: «Шаблон блога материалов на главной») будет иметь правильный вид: / (точнее, http://<домен>/).
Однако если по каким-то причинам необходимо/хочется использовать старый (табличный) стиль меню, а именно горизонтального («[Legacy] Горизонтально»), то вы обнаружите, что ссылки на главную страницу сайта в таком меню имеют вид http://<домен>/<псевдоним_главной>. И хотя по этой ссылке будет отображаться то же самое, что и по http://<домен>/, нет никакого смысла иметь «удлинённый» адрес.
К сожалению, тут потребуется (минимальное) вмешательство в код самой CMS (её ядра):
/modules/mod_mainmenu/legacy.php
…
// replace & with amp; for xhtml compliance
// remove slashes from excaped characters
$mitem->name = stripslashes(htmlspecialchars($mitem->name));
if ($mitem->home == 1) $mitem->url = JURI::base();
switch ($mitem->browserNav)
{
// cases are slightly different
…
Это сработает. Но всё-таки ещё раз напомню, что лучше всего в качестве стиля меню использовать «Список» и настраивать его отображение в CSS.