Доброго времени суток!
Стояла задача реализовать создание одностраничных сайтов с минимальными затратами по времени и ресурсам.
Моя реализация основана принципе создания одностраничного сайта в рамках стандартного ресурса MODx и подмены шаблона и содержимого главной страницы в зависимости от доменного имени сайта, по которому пользователь перешел.<cut/>
Итак, суть решения:
  1. К каждому ресурсу, который представляет собой отдельный одностраничный сайт присваивается tv поле с доменным именем
  2. на событие OnLoadWebDocument вешается плагин, который получает текущий домен и находит ресурс,
    привязанный к данному домену, получает и применяет шаблон данного ресурса к главной странице, создает плейсхолдер, в котором хранится id нужного нам ресурса
  3. Выводится нужный нам контент в соответствии с плейсхолдером в нужном нам шаблоне
Собственно сам плагин:
<?php
$id = $modx->resource->get('id');

if($modx->event->name == 'OnLoadWebDocument' ){
    $domain = $_SERVER['HTTP_HOST'];
    $q = $modx->newQuery('modTemplateVarResource', array('tmplvarid'=>1,'value'=>$domain));// 'tmplvarid'=>1 это id тв поля с доменом
    $q->select('contentid');
    $RESID = $modx->getValue($q->prepare());// получаем id ресурса соответствующего домену
    
    if($RESID){
        $modx->setPlaceholder('resid', $RESID);
        if(!in_array($id,array(3,4))){//отсекаем страницы роботса и сайтмап
            $res = $modx->getObject('modResource',$RESID);// 
            $template = $res->get('template');// сохраним id нужного ресурса для вызова в шаблонах
            $modx->resource->set('template', $template);//задаем шаблон вывода
            $modx->resource->save();
            $cm = $modx->getCacheManager();
            $cm->refresh();
        }
    }
}


Конечно можно просто создать для каждого сайта свой шаблон и не заморачиваться, но это не то, что нам нужно, поэтому весь контент в шаблонах вызывается через fastField:
Если кому-то будет полезно — буду рад.