У меня такой сниппет обрабатывает форму добавления, редактирования и удаления данных
<?php 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;
Файл процессор для редактирования:
<?php 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 не силен, но хочется делать как правильнее.