class GroupFilterGetListProcessor extends modObjectGetListProcessor {
public $classKey = 'GoodNewsGroup';
public $languageTopics = array('goodnews:default');
public $defaultSortField = 'name';
public $defaultSortDirection = 'ASC';
public $objectType = 'goodnews.group';
public function prepareQueryBeforeCount(xPDOQuery $c) {
$c->select(array(
'GoodNewsGroup.id',
'GoodNewsGroup.name',
));
return $c;
}
public function prepareRow(xPDOObject $object) {
$resourceArray = $object->toArray('', false, true, true);
return $resourceArray;
}
}
return 'GroupFilterGetListProcessor';
{
xtype: 'modx-combo'
,id: 'goodnews-categories-group-filter'
,emptyText: _('goodnews.subscribers_user_group')+'...'
,width: 200
,listWidth: 250
,displayField: 'name'
,valueField: 'id'
,store: new Ext.data.JsonStore({
url: GoodNews.config.connectorUrl
,baseParams: {
action : 'mgr/groups/getGroupFilterList'
}
,fields: ['id','name']
,root: 'results'
})
,listeners: {
'select': {fn:this.filterByUserGroup,scope:this}
}
}
This question has been answered by multiple community members. See the first response.

class GroupFilterGetListProcessor extends modObjectGetListProcessor {
public $classKey = 'GoodNewsGroup';
public $languageTopics = array('goodnews:default');
public $defaultSortField = 'name';
public $defaultSortDirection = 'ASC';
public $objectType = 'goodnews.group';
public function prepareQueryBeforeCount(xPDOQuery $c) {
$c->select(array(
'GoodNewsGroup.id',
'GoodNewsGroup.name',
));
return $c;
}
public function prepareRow(xPDOObject $object) {
$resourceArray = $object->toArray('', false, true, true);
return $resourceArray;
}
public function beforeIteration(array $list) {
// additional option value "no group assigned"
if ($this->getProperty('addNoGroupOption', false)) {
$list[] = array(
'id' => '0',
'name' => $this->modx->lexicon('goodnews.subscribers_no_group'),
);
}
return $list;
}
}
return 'GroupFilterGetListProcessor';
{
xtype: 'modx-combo'
,id: 'goodnews-categories-group-filter'
,emptyText: _('goodnews.subscribers_user_group')+'...'
,width: 200
,listWidth: 250
,displayField: 'name'
,valueField: 'id'
,store: new Ext.data.JsonStore({
url: GoodNews.config.connectorUrl
,baseParams: {
action : 'mgr/groups/getGroupFilterList'
,addNoGroupOption: true
}
,fields: ['id','name']
,root: 'results'
})
,listeners: {
'select': {fn:this.filterByUserGroup,scope:this}
}
}