Написание плагина на OnUserActivate
Приветствую! Пожалуйста подскажите, как можно реализовать следующее: После активации учетной записи пользователя администратором сайта в админке, автоматически отправляется письмо на адрес активированного пользователя о том, что он может заходить на сайт под своей учеткой?
Я, собственно, из-за чего завис: как взять поля из профиля именно нужного пользователя, а не админа, который активирует юзера?
Буду очень благодарен на наставления в нужную сторону :-)
Я, собственно, из-за чего завис: как взять поля из профиля именно нужного пользователя, а не админа, который активирует юзера?
Буду очень благодарен на наставления в нужную сторону :-)
Комментарии: 6
ExtJs выполняя php передает ему id юзера с которым работала. Так что тут тебе придется скорее всего переписывать процессор modUserUpdateProcessor и использовать свой ключ класса. Но тогда не нужен будет плагин, а что бы работал плагин, ему необходимо передавать за ранее id нужного пользователя. Вам проще добавить небольшую кнопочку в панель редактирования пользователем, по нажатию на которую будет отправлятся письмо со всем необходимым. Для примера внедрения ExtJs кода в панель редактирования пользователя посмотрите мини дополнение modavatar.
Андрей, ознакомьтесь вообще с выборками XPDO, вам по сути нужно просто выбрать по ID данные пользователя, ссылка вот
rtfm.modx.com/xpdo/2.x/class-reference/xpdoquery/xpdoquery.select
плюс я где-то на этом сайте пример оставлял…
rtfm.modx.com/xpdo/2.x/class-reference/xpdoquery/xpdoquery.select
плюс я где-то на этом сайте пример оставлял…
Нужный пользователь передается в параметрах события
$id это id пользователя, которого активировали, а $user — объект modUser этого пользователя
Т, е. чтобы отправить пользователю письмо достаточно в плагине на OnUserActivate написть:
$id это id пользователя, которого активировали, а $user — объект modUser этого пользователя
Т, е. чтобы отправить пользователю письмо достаточно в плагине на OnUserActivate написть:
$user->sendEmail('Hello', array('subject'=>'Активация'));
Спасибо большое всем откликнувшимся!
Евгений, ваше решение — именно то, что мне сейчас нужно. Без программирования, просто и быстро.
Еще раз всех благодарю!
Евгений, ваше решение — именно то, что мне сейчас нужно. Без программирования, просто и быстро.
Еще раз всех благодарю!
А как отправить не Hello, а например, content определенного ресурса? Или содержимое чанка
а вот так:
$object = $modx->getObject('modResource',1);
$user->sendEmail($object->content, array('subject'=>$object->pagetitle));
$object = $modx->getObject('modResource',1);
$user->sendEmail($object->content, array('subject'=>$object->pagetitle));
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.