я бы в данном случае migx использовал бы, так как
я бы в данном случае migx использовал бы, так как все TV вроде однотипные, то по-моему проще из 22 одно, хоть и с JSON массивом сделать. Да и запрос лучше с JOIN-ом писать т.к. 1 запрос пусть и громоздкий лучше чем 1000.
$query = $modx->newQuery('modTemplateVarResource');
$query->innerJoin('modResource','modResource','modTemplateVarResource.contentid=modResource.id');
$query->where(array(
'modResource.parent' => 2,
'modResource.deleted'=> 0,
'modTemplateVarResource.tmplvarid'=>1
));
$Tv = $modx->getCollection('modTemplateVarResource',$query);
foreach($Tv as $key){
print($key->get('value'));
print(' || ');
}