Предложение по поводу главного меню, а точнее его компонента - mod_mjoostinamenu. При навигации, зачастую "верхнее" меню используется как меню первого уровня, а "левое" меню - как меню второго уровня. Задача: сделать таким образом, чтобы при выборе разных элементов "верхнего" меню - выводились разные пункты "левого" меню. Варианты решения: Копировать модуль главного меню и привязывать его к разным меню (спискам элементов меню) и отображать на нужных страницах (нашел поиском несколько тем, например эту: http://joomla-support.ru/showthread.php?t=2636 ) Решение, если честно, не очень удобное. Почему бы не сделать так: создать одно меню (иерархический список элементов), в "верхнем" меню выводить только его первый уровень, а в "левом" меню - только нижние уровни выбранного в "верхнем" меню пункта? М.б. я плохо читал документацию, но возможности такой не нашел. Предлагаю модернизировать mod_mjoostinamenu для того, чтобы такая возможность появилась. Вот так я подправил код mod_mjoostinamenu.php для реализации этой функциональности: function mosRecurseVIMenuMLZ( $id, $level, &$children, &$open, &$indents, &$params ) { if (@$children[$id]) { $n = min( $level, count( $indents )-1 ); echo "\n".$indents[$n][0]; //добавил $Itemid global $Itemid; foreach ($children[$id] as $row) { /* оригинальный код echo "\n".$indents[$n][1]; * echo mosGetJoostinaLink( $row, $level, $params, $open ); * // show menu with menu expanded - submenus visible * if ( !$params->get( 'expand_menu' ) ) { * if ( in_array( $row->id, $open )) { * mosRecurseVIMenuMLZ( $row->id, $level+1, $children, $open, $indents, $params ); * } * } else { * mosRecurseVIMenuMLZ( $row->id, $level+1, $children, $open, $indents, $params ); * } * echo $indents[$n][2]; */ //мой код if ($level==0){ if ( ($Itemid == $row->id) ||( in_array( $row->id, $open ) ) ) { mosRecurseVIMenuMLZ( $row->id, $level+1, $children, $open, $indents, $params ); continue; } else { continue; } } else { echo "\n".$indents[$n][1]; echo mosGetJoostinaLink( $row, $level, $params, $open ); mosRecurseVIMenuMLZ( $row->id, $level+1, $children, $open, $indents, $params ); echo $indents[$n][2]; } // /мой код } echo "\n".$indents[$n][3]; } } } Это решение "в лоб" - при нем не отрабатываются настрока "Разворачивать меню" и нет никаких условий. Если возможно - включите в опции.