'ASC'), $limit = 0, $offset = 0) { /* build query */ $c = $xpdo->newQuery('modContextSetting'); $c->select(array( $xpdo->getSelectColumns('modContextSetting','modContextSetting'), )); $c->select(array( 'Entry.value AS name_trans', 'Description.value AS description_trans', )); $c->leftJoin('modLexiconEntry','Entry',"CONCAT('setting_',modContextSetting.{$xpdo->escape('key')}) = Entry.name"); $c->leftJoin('modLexiconEntry','Description',"CONCAT('setting_',modContextSetting.{$xpdo->escape('key')},'_desc') = Description.name"); $c->where($criteria); $count = $xpdo->getCount('modContextSetting',$c); $c->sortby($xpdo->getSelectColumns('modContextSetting','modContextSetting','',array('area')),'ASC'); foreach($sort as $field=> $dir) { $c->sortby($xpdo->getSelectColumns('modContextSetting','modContextSetting','',array($field)),$dir); } if ((int) $limit > 0) { $c->limit((int) $limit, (int) $offset); } return array( 'count'=> $count, 'collection'=> $xpdo->getCollection('modContextSetting',$c) ); } }