Написание плагина на OnUserActivate

Приветствую! Пожалуйста подскажите, как можно реализовать следующее: После активации учетной записи пользователя администратором сайта в админке, автоматически отправляется письмо на адрес активированного пользователя о том, что он может заходить на сайт под своей учеткой?
Я, собственно, из-за чего завис: как взять поля из профиля именно нужного пользователя, а не админа, который активирует юзера?

Буду очень благодарен на наставления в нужную сторону :-)
Андрей, Омск
26 февраля 2014, 19:34
modx.pro
2 018
0

Комментарии: 6

Aртур Чикин
27 февраля 2014, 00:28
0
ExtJs выполняя php передает ему id юзера с которым работала. Так что тут тебе придется скорее всего переписывать процессор modUserUpdateProcessor и использовать свой ключ класса. Но тогда не нужен будет плагин, а что бы работал плагин, ему необходимо передавать за ранее id нужного пользователя. Вам проще добавить небольшую кнопочку в панель редактирования пользователем, по нажатию на которую будет отправлятся письмо со всем необходимым. Для примера внедрения ExtJs кода в панель редактирования пользователя посмотрите мини дополнение modavatar.
    Clean
    27 февраля 2014, 00:51
    0
    Андрей, ознакомьтесь вообще с выборками XPDO, вам по сути нужно просто выбрать по ID данные пользователя, ссылка вот
    rtfm.modx.com/xpdo/2.x/class-reference/xpdoquery/xpdoquery.select
    плюс я где-то на этом сайте пример оставлял…
      Евгений Дурягин
      27 февраля 2014, 00:54
      0
      Нужный пользователь передается в параметрах события
      $id это id пользователя, которого активировали, а $user — объект modUser этого пользователя
      Т, е. чтобы отправить пользователю письмо достаточно в плагине на OnUserActivate написть:
      $user->sendEmail('Hello', array('subject'=>'Активация'));
        Андрей, Омск
        27 февраля 2014, 01:49
        0
        Спасибо большое всем откликнувшимся!
        Евгений, ваше решение — именно то, что мне сейчас нужно. Без программирования, просто и быстро.

        Еще раз всех благодарю!
          Виктор
          Виктор
          26 июля 2016, 09:59
          0
          А как отправить не Hello, а например, content определенного ресурса? Или содержимое чанка
            Виктор
            Виктор
            26 июля 2016, 11:57
            0
            а вот так:

            $object = $modx->getObject('modResource',1);
            $user->sendEmail($object->content, array('subject'=>$object->pagetitle));
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          6