В некоторых ситуациях, при оформлении меню возникает необходимость задания стиля не только для ссылки пункта меню, но и для ячейки таблицы, в которой эта ссылка расположена.
В обычном виде, в общем случае, вертикальное меню выглядит следующим образом:
<table cellpadding="0" cellspacing="0" class="moduletable-mainmenu">
<tr>
<td>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr align="left"><td><a href="/..." class="mainlevel" >Пункт меню</a></td></tr>
<tr align="left"><td><a href="/..." class="mainlevel" id="active_menu" >Пункт меню</a></td></tr>
<tr align="left"><td><a href="/..." class="mainlevel" >Пункт меню</a></td></tr>
</table>
</td>
</tr>
</table>
К сожалению, разработчики не придусмотрели возможность задания особого стиля для ячейки таблицы, содержащей активный пункт меню (т.е. для тега TD из строки <tr align="left" /><td /><a ...).
Самостоятельно сделать это можно в файле modules/mod_mainmenu.php.
Найдите функцию mosRecurseVIMenu, а в ней строку:
echo "\n".$indents[$n][1];
И замените ее на строку:
echo "\n".(in_array($row->id, $open) ? str_replace('<td>', '<td class="active_menubloсk">', $indents[$n][1]) : $indents[$n][1]);
Это позволит добавить для ячейки, содержащей активный пункт меню, название класса и привести таблицу меню к следующему виду:
<table cellpadding="0" cellspacing="0" class="moduletable-mainmenu">
<tr>
<td>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr align="left"><td><a href="/..." class="mainlevel" >Пункт меню</a></td></tr>
<tr align="left"><td class="active_menubloсk"><a href="/..." class="mainlevel" id="active_menu" >Пункт меню</a></td></tr>
<tr align="left"><td><a href="/..." class="mainlevel" >Пункт меню</a></td></tr>
</table>
</td>
</tr>
</table>