И еще: 'processors_path' => $modx->getOption('core_path'). 'site/processors/' А что это ты из core_path процессор пытаешься дернуть? У тебя по идее как минимум в core_path. components должно лежать. Пути в общем проверь.

  1. В начале кода в консоли пропиши ini_set('display_errors', 1); Чтобы php тебе выводил ошибки.
  2. Поставь FireBug или типа того, чтобы видеть Ajax-овые запросы и т.п.
  3. Ошибка у тебя 99,999% из-за $this->getMessage(). Это моя функция в моем процессоре, и в процессорах MODX-а ее нет. Поэтому у тебя скрипт и разваливается с критической ошибкой.

вот что получилось: <?php require_once(MODX_CORE_PATH.'components/gallery/processors/mgr/item/getlist.class.php');

class modSiteGalleryProcessor extends GalleryItemGetListProcessor{

public function outputArray(array $array, $count = false){ return array( 'success' => true, 'message' => $this->getMessage(), 'count' => count($array), 'total' => $count, 'object' => $array, ); } } return 'modSiteGalleryProcessor'; вызываю из консоли <?php $response = $modx->runProcessor('gallery/getlist', array( 'album' => 1, ), array( 'processors_path' => $modx->getOption('core_path') . 'site/processors/' )); print_r($response->response); ничего не выдает, только Loading крутится. Что-то я еще не сделал?

Так кто мешает? Говорю же — перегрузи метод outputArray() и все.

Понятно, спасибо. Сейчас попробую.

Как создавать собственные галереи на основе Gallery, я писал здесь. А по поводу возвращаемого JSON-а: изначально modProcessor::outputArray() возвращает JSON-строку. public function outputArray(array $array,$count = false) { if ($count === false) { $count = count($array); } return '{"total":"'.$count.'","results":'.$this->modx->toJSON($array).'}'; } Но так как мы часто пишем метод process сами, и возвращаем в нем $this->success() или $this->failure(), то $this->outputArray() мы и не замечаем. А вот modObjectGetListProcessor в process() именно его и возвращает. public function process() { $beforeQuery = $this->beforeQuery(); if ($beforeQuery !== true) { return $this->failure($beforeQuery); } $data = $this->getData(); $list = $this->iterate($data); return $this->outputArray($list,$data['total']); } Вот поэтому ты на выходе и получаешь JSON. Перегрузи outputArray и все. Можешь в нем $this->success($msg, $array) вернуть, а можешь сразу массив вернуть, как у меня в getdata-процессорах. public function outputArray(array $array, $count = false){ return array( 'success' => true, 'message' => $this->getMessage(), 'count' => count($array), 'total' => $count, 'object' => $array, ); }

Все понятно. Блин, хотелось бы все же с процессорами разобраться. По-моему, mgr/item/getlist в gallery меньше кода гоняет

Большое спасибо. Это то что я искал.