Привет, Коля!
У меня так и сделано. я только процессорами и пользуюсь. Структура примерно такая:
контекст web (хост site.ru)
id=1 Главная (uri= / )
id=2 Каталог (uri= /catalog )
id=2 Контакты (uri= /contacts )
…
контекст sd (хост sd.site.ru)
id=47 Контакты (uri= /contacts1) — modx не дает создать
При обращении по адресу sd.site.ru я переключаю контекст на 'sd', в котором нет странички с таким uri, генерируется onPageNotFound — и там я использовал твой код, как указал выше.
MODX находит эту страничку, выводит ее. но при генерации меню контекст используется web (только в нем есть все документы), и getmenu собирает ссылки из этого контекста.
Вот я и ломаю голову — как что где допилить :)