Честно говоря, я до сих пор не понимаю, почему разработчики Joomla! так и не удосужились сделать по умолчанию в модуле меню. Не смотря на то, что модуль меню в Joomla! версии 1.6-1.7 был значительно переработан и улучшен, все-таки важный и нужный пункт об обозначении первого и последнего пунктов списка меню остался открыт.
Но, к счастью, есть энтузиасты для которых это не совсем и большая проблема.
Лично я в силу того что я верстальщик решал ее с помощью небольшого куска JavaScript кода с использованием встроенной в Joomla! библиотеки Mootolls. Однако, каждый раз делая это, я думал что в случае, если пользователь отключит JS в браузере, то мой метод не сработает, а значит он не 100%. Поэтому, логическим решением являлось то, что нужно передавать класс первому и последнему элементам списка меню с помощь сервера а не клиента. И такое решение нашлось, при создании одного из первых шаблонов для Joomla! 1.6, а в последствии было испробовано и проверено на Joomla! 1.7. Сразу скажу, что решение не придумано мной, я взял его на форуме Joomla!, поэтому ни коим образом не претендую на авторство, а просто лишь хочу поделится им со всеми, кто разрабатывает шаблоны для CMS Joomla!
Итак, для того чтобы добавить нужные классы к первому и последнему пунктам меню Joomla! 1.6-1.7 вам нужно сделать следующее:
1. Добавить в папку /html
вашего шаблона шаблон для переопределения разметки модуля меню Joomla! Для этого из папки /modules/mod_menu/tmpl/
скопируйте файлы default.php и index.html в папку переопределения разметки вашего шаблона /templates/your_template_name/html/mod_menu
2. Теперь в фале default.php модуля меню в папке /html
вашего шаблона найдите строки
if ($item->deeper) { $class .= 'deeper '; } |
и замените их на следующий код
$currentitemcount ++; if ($item->shallower or $currentitemcount == count($list)) { $class .= ' last '; } if ($lastdeeper or $currentitemcount == 1) { $class .= ' first '; } if ($item->deeper) { $class .= ' deeper '; $lastdeeper = true; } else { $lastdeeper = false; } |
Собственно на этом и все. Остается лишь добавить, что если ваш сайт находится в рабочем режиме и на нем включено кеширование, то не забудьте почистить кеш. Удачного вам Joomla! строительства.