я бы в данном случае migx использовал бы, так как все TV вроде однотипные, то по-моему проще из 22 одно, хоть и с JSON массивом сделать. Да и запрос лучше с JOIN-ом писать т.к. 1 запрос пусть и громоздкий лучше чем 1000.
<?php $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(' || '); }