Необходимо будет внести правки в макет вывода пункта меню для компонента - default_component.php. Для начала не забываем скопировать его из "/modules/mod_menu/tmpl/default_component.php" в "/html/mod_menu/default_component.php" своего шаблона. Далее можно приступать к правке.
Необходимо задать два разных варианта отображения отдельно для пункта меню ссылающегося на текущую страницу и отдельно на любую другую страницу, используя проверку на соответствие некоторым условиям. Пункт меню текущей страницы будет иметь тег span с классом "a", класс необходимо задать т.к. теги span могут быть у других элементов данного пункта.
Вот часть кода, которая и выводит ссылки пунктов меню:
switch ($item->browserNav)
{
default:
case 0:
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
break;
case 1:
// _blank
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" target="_blank" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
break;
case 2:
// Use JavaScript "window.open"
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" onclick="window.open(this.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes');return false;" <?php echo $title; ?>><?php echo $linktype; ?></a>
<?php
break;
}
В начале добавим проверку, вконце альтернативный вариант отображения. Что касается проверки, если открыть основной макет модуля меню - default.php, там есть проверка для добавления к активному пункту меню сласса "current":
if (($item->id == $active_id) OR ($item->type == 'alias' AND $item->params->get('aliasoptions') == $active_id))
{
$class .= ' current';
}
Изначально планировал сделать так же, но такой вариант не работает в случае с блогом категории - когда заходим в материал блога, ссылка на категорию остается активной, следовательно нужна была дополнительная проверка. Решил использовать сравнение "view" пункта меню и текущей страницы. В итоге получил такой код:
if ($item->id != $active_id)
{
switch ($item->browserNav)
{
default:
case 0:
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
break;
case 1:
// _blank
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" target="_blank" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
break;
case 2:
// Use JavaScript "window.open"
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" onclick="window.open(this.href,'targetWindow','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes');return false;" <?php echo $title; ?>><?php echo $linktype; ?></a>
<?php
break;
}
} else if (JRequest::getVar('view', null)==$item->query['view']){
?><span class="a"><?php echo $linktype; ?></span><?php
} else {
?><a <?php echo $class; ?>href="<?php echo $item->flink; ?>" <?php echo $title; ?>><?php echo $linktype; ?></a><?php
}
Не забываем в css продублировать все свойства тега "a" меню для "span.a"