Сегодня, Саша, мир твой рухнет))) Статью на этот счет почитать я тебе выше написал))

Все правильно сделано. Единственное, просто по синтаксису, проще так: return array( 'id' => $this->object->id, 'username' => $this->object->username, );

Саш, смотри ниже. И статью смотри, указанную в комментарии. Таким образом ты только увеличишь нагрузку на сервер. Это такие особенности xPDO.

Потому что надо смотреть в сторону методе prepareRow(). Как мы разбирали предметно ранее, xPDOObject::fromArray() выдернет из базы данных все строки объекта, так что $this->object->select() определенных колонок ничего не изменит, но нагрузки на сервер добавит. Надо переопределить этот метод в своем процессоре и вернуть типа return array( 'id' => $this->object->id, 'username' => $this->object->username, );

Антон, спасибо! :)

[18-Feb-2015 09:19:51] PHP Parse error: syntax error, unexpected T_STRING in /core/cache/includes/elements/modsnippet/3.include.cache.php on line 3 Не забывай, что MODX из сниппетов делает функции, и только потом вызывает их. Из-за этого смещениестрочек кода происходит. Смотреть надо именно указанный файл, а не исходный код, то есть /core/cache/includes/elements/modsnippet/3.include.cache.php Там будет примерно такой код: <?php function elements_modsnippet_1($scriptProperties= array()) { global $modx; if (is_array($scriptProperties)) { extract($scriptProperties, EXTR_SKIP); }

я не знаю прав ли я но так просто нельзя сделать… коллекция получает значения с таблицы и забивает ими класс xPDO. т.е. на выходе мы принимает не массив, а объекты конкретного класса… наверное п.с. из консоли не выход getCollection с селектом

это тоже будет работать, но при этом в запрос попадают все поля, и соответственно возрастает нагрузка и потребление памяти. Лучше все-таки до моментаобращения к мерверу правильно настроить select, чтобы в выборку попали только нужные поля. Странной дело, пока не могу понять public function prepareQueryBeforeCount(xPDOQuery $c){ $c=parent::prepareQueryBeforeCount($c); $c->select(['modUser.id','modUser.username']); $c->prepare(); print $c->toSQL(); die; } возвращает правильный запрос: SELECT modUser.id, modUser.username FROM spmx_users AS modUser а на выходе действительно отдает все поля Array ( [success] => 1 [total] => 5 [results] => Array ( [0] => Array ( [id] => 1 [username] => admin [password] => P3/gWbTaphPr//hV8djePt1qdcjN5CIxBVKE5tqdJyQ= [cachepwd] => [class_key] => modUser [active] => 1 [remote_key] => [remote_data] => [hash_class] => hashing.modPBKDF2 [salt] => b052eb5470a21ff53697a5bf4cb43649 [primary_group] => 1 [session_stale] => Array ( [1] => spravochniki [2] => web )

                [sudo] => 1
            )

        [1] => Array нигде в коде больше $c->select(...) не встречается вплоть до $modx->getCollection. Ничего не понимаю.

ну то что я хотел я получил осталось узнать на сколько все это правильно сделано. class xtestGetUsersProcessor extends modObjectGetListProcessor{ public $classKey = 'modUser'; public $defaultSortDirection = 'ASC'; public $defaultSortField = 'username';

.........

public function prepareRow(xPDOObject $object) {
    $objectArray = array();
    $objectArray['id'] = $object->get('id');
    $objectArray['username'] = $object->get('username');
    return $objectArray;
}

} return 'xtestGetUsersProcessor';