У меня такой сниппет обрабатывает форму добавления, редактирования и удаления данных
if (!$_POST['sheet']) {
$processor = 'sheet/create';
} else {
$_POST['id'] = $_POST['sheet'];
$modx->setPlaceholder('id', $_POST['id']);
if ($_POST['remove']) {
$processor = 'sheet/remove';
} else {
$processor = 'sheet/update';
}
}
$processorProps = array('processors_path' => $modx->getOption('core_path')
. 'components/exam/processors/');
$response = $modx->runProcessor($processor, $_POST, $processorProps);
if ($response->isError()) {
$hook->addError('process_error', $response->getMessage());
return false;
}
return true;
Файл процессор для редактирования:
class ExamSheetUpdateProcessor extends modObjectUpdateProcessor {
public $classKey = 'ExamSheet';
public $objectType = 'object';
public function beforeSet() {
if (!$this->modx->user->id) return 'Вам нужно авторизоваться';
if ($this->object->get('created_by') != $this->modx->user->id)
return 'Вы не можете редактировать чужие записи';
return true;
}
}
return 'ExamSheetUpdateProcessor';
Подскажите, где нужно добавить проверку, что если в поле статус ставится готов, то отправлять sms? Простым кодом давно бы написал, а в xpdo не силен, но хочется делать как правильнее.