Еще раз повторю: не нужно ничего сравнивать и ничего определять. У тебя уже ВСЕ определено. Единственное, что нужно сделать - это в соответствующем месте модуля как-то обозначить действие, выполняемое им в данный момент. (хотя конечно я пока не знаю, в какой последовательности у тебя обрабатываются блоки и модули, и можно ли такое проделать).
Да. как именно и откуда блок берет данные для меню, я тоже пока не представляю. Но алгоритм нахождения мне видится таким:
Далее в процессе обработки блока, он делает запрос к Mainclass например, Mainclass в свою очередь считывает необходимые данные из выполняемого модуля. На их основе формируется массив
Цитата
array('mdoule'=>'news',array('do'=>'add'))
и возвращается блоку. Ну а дальше уже дело техники...
Если же поступить, как хочешь ты, то придется учитывать настройки ЧПУ, возможность появления в URI посторонних данных и т. п....