Jump to main content Jump to doc navigation

Использование runProcessor, описанное здесь, работает только в Revolution 2.0.8 и более поздних версиях. Пользователи до этого должны будут использовать устаревшие executeProcessor методы.

Использование runProcessor

У MODX есть специальный метод, который позволяет вам запускать процессоры прямо из любого файла PHP, такого как Плагин, Сниппет или внешне. Это можно сделать с помощью следующего синтаксиса:

$response = $modx->runProcessor('action/path/to/processor',$arrayOfProperties,$otherOptions);

Затем он выполнит указанный процессор и вернет объект modProcessorResponse, который содержит ответ от процессора. Затем можно проверить, был ли процесс успешным или неудачным. Первый параметр или действие - это путь к процессору (без расширения файла) из папки core/model/modx/processors/ (Этот каталог также может быть переопределен в массиве 3-х параметров с помощью параметра processors_path).

Например, этот код создает новый Чанк:

$response = $modx->runProcessor('element/chunk/create',array(
   'name' => 'NewChunk',
   'description' => 'Тестовый чанк создан с 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'];

Этот блок кода запускает процессор element/chunk/create, проверяет, был ли он успешным (с помощью isError()), и, если так, возвращает сообщение с указанием идентификатора и имени нового чанка. Обратите внимание, что getObject возвращает массив объекта, который возвращается процессором. getMessage вернет любое сообщение, отправленное обратно процессором.

Вы также можете создать целого пользователя, включая Расширенные поля, групповые назначения, сгенерированный пароль и уведомление по электронной почте.

$groups = array();
$groups['Group1']['usergroup'] = '7'; // ID of group
$groups['Group1']['role'] = '1'; // ID of role
$groups['Group2']['usergroup'] = '8';
$groups['Group2']['role'] = '1';
$fields = array();
$fields['active'] = true;
$fields['passwordgenmethod'] = 'g';
$fields['passwordnotifymethod'] = 'e';
$fields['email'] = $email;
$fields['username'] = $username;
$fields['fullname'] = $fullname;
$fields['extended']['container']['name'] = $value;
$fields['groups'] = $groups;
$response = $modx->runProcessor('security/user/create', $fields);

Support the team building MODX with a monthly donation.

The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.

Backers

  • modmore
  • STERC
  • Digital Penguin
  • Jens Wittmann – Gestaltung & Entwicklung
  • Fabian Christen
  • Dannevang Digital
  • Sepia River Studios
  • CrewMark
  • Chris Fickling
  • deJaya
  • Lefthandmedia
  • Murray Wood
  • eydolan
  • Following Sea
  • Anton Tarasov
  • Stéphane Jäggi
  • Raffy
  • Snow Creative
  • A. Moreno
  • Nick Clark
  • JT Skaggs
  • Helen
  • YJ
  • krisznet
  • Richard
  • Yanni

Budget

$301 per month—let's make that $500!

Learn more