Ответ от okyanet правильный, но я добавил подробности для тех, кто не знаком с MODX.
Создайте плагин и настройте его на выполнение двух системных событий 'onBeforeDocFormSave' и 'onDocFormSave'. Два события запускаются непосредственно перед и сразу после сохранения ресурса. Когда ресурс сохранен, переменная $ mode доступна для вашего плагина, и если это новый ресурс, его значение равно modSystemEvent :: MODE_NEW , а если обновление имеет значение modSystemEvent: MODE_UPD
Я написал суть, которая включает полный код с примерами:
https://gist.github.com/2768300
В этом примере показано, как нацелить любое событие с помощью оператора switch и как дополнительно нацелить статус «новый» или «обновить» действия. Для перехвата и изменения полей ресурсов достаточно просто использовать событие onBeforeDocFormSave , поскольку вы можете просто изменить любое имя поля ресурса с помощью $ resource-> set ('yourFieldname') . $ resource-> save () не требуется, поскольку это происходит автоматически после этого события.
По-видимому, намного сложнее сохранить телевизор с помощью события onBeforeDocFormSave из-за способа обработки телевизора, поэтому в примере показано, как обновить телевизор с помощью системного события onDocFormSave. Опять же $ resource-> save () не требуется, так как телевизоры сохраняются сразу же после вызова для них setValue.
Может быть создан плагин для работы, требующий только одного из системных событий, но, поскольку есть преимущества использования обоих состояний, как показано выше, и, чтобы помочь объяснить, я использовал оба.