Частично мультидоменный сайт

Добрый день. Прошу о подсказке — может, сталкивался кто? Думаю, тема интересна не только мне. Требуется сделать сайт, доступный по нескольким адресам — к примеру, site.ru, sd1.site.ru, sd2.site.ru т.е. есть основной сайт организации и сайты ее дилеров. Причем фактически нужен один сайт, у которого некоторые странички (контакты, новости и т.п.) должны отличаться на разных поддоменах. Создал дополнительные контексты, настроил переключатель контекстов. Так как в дочерних сайтах нужны только некоторые документы, на событие onPageNotFound повесил плагин, чтобы остальные подгружать из основного контекста (web), заменив условие поиска: $modx->resource = $modx->getObject('modResource', ['uri'=>$q]); Вроде все работает, но проблема в том, что формирование ссылок происходит только в контексте того документа, который выводится. Например, в меню ссылка на контакты ВСЕГДА указывает на контакты из контекста web. Может, кто подскажет, как решить эту задачу? Возможно, я не в ту сторону вообще смотрю? Спасибо.

Например, в меню ссылка на контакты ВСЕГДА указывает на контакты из контекста web. Это особенность метода $modx->makeUr(). Попробуй в консоли не в контексте web выполнить print $modx->makeUrl($id), где $id — id документа из контекста web и не равен 1. Получишь что-то типа такого: [2015-08-26 19:31:30] (WARN @ /manager/components/console/connectors/console.php) 5 was requested but no alias was located. http://*********/news/ Это же будет в случае вывода тегов [[~id]], использования сниппета Wayfinder и т.п. По этой причине я в таких случаях использовал menu-процессор и выводил $object->uri.

Привет, Коля! У меня так и сделано. я только процессорами и пользуюсь. Структура примерно такая: контекст 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 собирает ссылки из этого контекста. Вот я и ломаю голову — как что где допилить :)

modx не дает создать modx не дает создать два одинаковых alias

modx не дает создать два одинаковых alias С этим разобрался, надо в настройках отключить проверку дублирования во всех контентах. А с генерацией ссылок — засада. Была идея — передавать в процессор ключ приоритетного контекста и при формировании списка проверять, нет ли в том контексте такого документа… Но че-то мне кажется, слишком криво и неповоротливо это будет

А где у тебя инициализация контекста sd? В index.php или на уровне плагина какого-нибудь? Пришли мне доступ к админке на почту.

Вопрос разрешился довольно просто: достаточно просто отключить в системных настройках отслеживание дублирования uri в разных контентах и замещающим страницам давать одинаковые алиасы (ну и uri соответственно).