Получение данных в процессоре

Здравствуйте. Наслышан, что тут знатные знатоки по работе с процессорами в MODX. Самому как-то не приходилось особо вникать в процессоры, за исключением использования штатных типа resource/create, но вот теперь такая необходимость возникла и вместе с ней небольшой ступор. Теперь к делу.

Есть своя CMP, там таблица с данными, в которой предположим 3 колонки id, name и третья колонка с кнопкой. При нажатии на кнопку берется id текущей строки и отправляется через коннектор на соответствующий процессор. Если например я на событие по клику повешу отправку на процессор remove, то соответственно нужная строка из таблицы будет удалена, значит кнопка точно работает. С этим разобрались. Но мне нужно отправить запрос на свой процессор и там обработать данные. Проблема в том что я не знаю как отловить переданный id в процессоре чтобы уже использовать его дальше. Например по клику на кнопку поле name меняется на заранее указанное в процессоре. Через приложение Николая Console это выглядело бы примерно так и name в табличке с соответствующим id меняется:

$id = 1;
$res = $modx->getObject('myClass',$id);
$res->set('name', 'New Name');
$res->save();

А вот как подобную манипуляцию выполнить в процессоре не знаю. То есть мне нужно получить в переменную id, получить объект и уже дальше выполнять свой скромный код. Пробовал так, но ничего не выходит:

$id = $this->getProperty('id');

Буду весьма благодарен за советы. Заранее спасибо.

Comments

Но мне нужно отправить запрос на свой процессор и там обработать данные. Проблема в том что я не знаю как отловить переданный id в процессоре чтобы уже использовать его дальше.

А вы точно данные передаете на коннектор (и далее на процессор)?

Все входящие данные в процессоре видны в переменной $this->properties. Оттуда процессоры и дергают значения через метод $this->getProperty($propertyName);

Пропишите в своем процессоре

function initialize(){
    $this->modx->log(1, print_r($this->properties, 1), 'FILE');
    return parent::initialize();
}

И после вызова смотрите в MODX-логах что там вообще вам на процессор пришло.

Ну и почитайте внимательно это: https://modxclub.ru/topics/vse-chto-vyi-xoteli-znat-o-proczessorax-no-boyalis-sprosit-1563.html

Здравствуйте. Спасибо большое за ответ. Уже немного начинаю разбираться с процессорами, сделал в своем процессоре так, теперь данные в табличке меняются на заранее предустановленные:

class ScrapxScrappingProcessor extends modObjectUpdateProcessor {
    public $classKey = 'ScrapxPresets';
    public $languageTopics = array('scrapx:scrapxpresets');
    
    public function beforeSet() {
        
        $this->setProperty('name', 'New Name');
        

        return parent::beforeSet();
    }

}
return 'ScrapxScrappingProcessor';

Но теперь у меня другой вопрос. Возможно ли в процессоре обратиться, например, к ресурсу и изменить его поля или запустить в этом же процессоре системный resource/create? Кстати, подсматриваю в статью, которую вы мне дали по ссылке. Жаль нет поиска по вашему сайту, потому что раньше много полезных материалов было у вас, а сейчас их не найти.

Вроде бы разобрался насколько было нужно. Оказалось в процессорах немного не так надо было писать как, например, в сниппетах. Там чтобы получить объект нужно вот так оказывается:

$res = $this->modx->getObject('modResource',2);

Николай, спасибо за ваши статьи по процессорам модекса, очень помогли. Оказывается процессоры вообще очень крутая штука, почему я их раньше не использовал...