modProcessor

25 Октября 2021 15:14

modx::runProcessor

Запускает указанный процессор.

Принимаемые параметры:

  1. action - Действие, которое нужно выполнить (процессор для запуска), это путь к процессору (без расширения файла);
  2. scriptProperties - Массив свойств, передаваемых процессору$
  3. options - Массив опций, передаваемых процессору.
    • processors_path - если указано, будет переопределять путь процессоров MODX. По умолчанию, это core/model/modx/processors/. Это полезно если мы пишем свои процессоры и нам нужно указать путь до них.

Примеры:

1. Запуск стандартного процессора, например на создание чанка.

$response = $modx->runProcessor('element/chunk/create',array(
   'name' => 'NewChunk',
   'description' => 'A test Chunk made with runProcessor.',
   'snippet' => '<h3>Chunkify!</h3>',
));
if ($response->isError()) {
    return $response->getMessage();
}
$chunkArray = $response->getObject();
return 'The chunk "'.$chunkArray['name'].' was created with ID '.$chunkArray['id'];

2. Запуск своего процессора из компонента.

$processorProps = array(
	'class_key' => 'bookingDay'
);
$response = $modx->runProcessor('getlistone', $processorProps, array('processors_path' => 'core/components/booking/processors/mgr/item/'));
print_r($response);

Как видно из этого примера, мы указали action первым параметром - getlistone (файл процессора называется getlistone.class.php). А третьим параметром указали путь до директории, где лежат процессоры - core/components/booking/processors/mgr/item/

Методы и свойства объекта ответа процессора

  1. (property) $response->response. Сам ответ процессора. Если процессор унаследован от modObjectGetListProcessor то ответом будет json с данными;
  2. (method) $response->isError();
  3. (method) $response->getMessage();
  4. (method) $response->getObject();