iWatchYouFromAfar
привет ребят на какое собитие ставить плагин который будет исполнять действие только при регистрации, не при сохранении данних а суто регистрация
ставишь событие например onUserSave или OnBeforeUserFormSave, пишешь условие if ($mode == 'new') - и делаешь что нужно, условие сработает только если юзер новый
iWatchYouFromAfar
т.е. впервые зарегестрировался
iWatchYouFromAfar
как такового события регистрации юзера в модкс нет
Evgeniy
$mode == modSystemEvent::MODE_NEW
iWatchYouFromAfar
тогда онюзерсейвв
Олег
<?php switch ($modx->event->name) { case 'OnUserSave': $tpl = $modx->getOption('emailTpl',$scriptProperties,'newUserTpl'); if ($mode == 'new') { $message = $modx->getChunk($tpl,array_merge($user->toArray(),$user->Profile->toArray())); $email = 'thunderrey@yandex.ua'; //$modx->getOption('formit.user_email'); $modx->getService('mail', 'mail.modPHPMailer'); $modx->mail->set(modMail::MAIL_BODY,$message); $modx->mail->set(modMail::MAIL_FROM,'no-replay@beautydermal.com'); $modx->mail->set(modMail::MAIL_FROM_NAME,'Beauty Dermal'); $modx->mail->set(modMail::MAIL_SUBJECT,'Реєстрація нового користувача'); $modx->mail->address('to',$email); $modx->mail->setHTML(true); if (!$modx->mail->send()) { $modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo); } $modx->mail->reset(); } break; }
Олег
но почему то не срабативает
iWatchYouFromAfar
оформи код емана
iWatchYouFromAfar
читать невозможно
Олег
щас в телеге есть какие то теги?
iWatchYouFromAfar
да
Evgeniy
не кавычки))
Олег
<?php switch ($modx->event->name) { case 'OnUserSave': $tpl = $modx->getOption('emailTpl',$scriptProperties,'newUserTpl'); if ($mode == 'new') { $message = $modx->getChunk($tpl,array_merge($user->toArray(),$user->Profile->toArray())); $email = 'thunderrey@yandex.ua'; //$modx->getOption('formit.user_email'); $modx->getService('mail', 'mail.modPHPMailer'); $modx->mail->set(modMail::MAIL_BODY,$message); $modx->mail->set(modMail::MAIL_FROM,'no-replay@beautydermal.com'); $modx->mail->set(modMail::MAIL_FROM_NAME,'Beauty Dermal'); $modx->mail->set(modMail::MAIL_SUBJECT,'Реєстрація нового користувача'); $modx->mail->address('to',$email); $modx->mail->setHTML(true); if (!$modx->mail->send()) { $modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo); } $modx->mail->reset(); } break; }
Олег
перенесения строк сама телега сделала(
Олег
при активации также не срабатывает
Evgeniy
сам плагин то срабатывает или просто письмо не улетает?))
Yani
Добрый день. коллеги =) подскажите, в феноме есть array_merge ?
iWatchYouFromAfar
Yani
блин блинский ... думаю как лучше сделать вызов 2 разных сниппетов с 50% одинаковых опций
Олег
надо подебажить
в логе ничего вроде нету по ошибкам
Evgeniy
в логе ничего вроде нету по ошибкам
проверь в лог пишет или нет при срабатывании)
Олег
$modx->log(MODX_LOG_LEVEL_ERROR, 'Сообщение');
Олег
вот так пробую
iWatchYouFromAfar
и?
Олег
[2019-08-29 09:55:16] (ERROR @ /var/www/vhosts/beautydermal.com/httpdocs/core/cache/includes/elements/modplugin/21.include.cache.php : 9) Сообщение [2019-08-29 09:55:16] (ERROR @ /var/www/vhosts/beautydermal.com/httpdocs/core/cache/includes/elements/modplugin/21.include.cache.php : 18) An error occurred while trying to send the email: Пустое сообщение
iWatchYouFromAfar
работает
iWatchYouFromAfar
у события есть 2 параметра - https://docs.modx.com/revolution/2.x/developing-in-modx/basic-development/plugins/system-events/onusersave
iWatchYouFromAfar
залогируй их, пройди регистрацию и посмотри что там будет
iWatchYouFromAfar
получишь объект юзера и информацию о том, новый он или нет
Олег
щас
Evgeniy
An error occurred while trying to send the email: Пустое сообщение а как же это?)
Олег
An error occurred while trying to send the email: Пустое сообщение а как же это?)
аа блин у меня же отправка через доменное SMTP идет или в етом не может быть проблема?
iWatchYouFromAfar
аа блин у меня же отправка через доменное SMTP идет или в етом не может быть проблема?
проблема может быть в чем угодно, залогируй то что я написал выше
Олег
проблема может быть в чем угодно, залогируй то что я написал выше
я новичок в modx, подскажи плиз как передать их в лог
Evgeniy
$mode и $user?))
iWatchYouFromAfar
я новичок в modx, подскажи плиз как передать их в лог
$modx->log(MODX_LOG_LEVEL_ERROR, 'Сообщение'); - вот сюда, распечатку массива с параметрами события
iWatchYouFromAfar
вместо сообщение, массив передавай и смотри че там
Evgeniy
так у него просто сообщение пустое вроде как
iWatchYouFromAfar
так у него просто сообщение пустое вроде как
Жек не тупи, все у него работает, в логах сообщение которое он и писал
Олег
[2019-08-29 10:05:54] (ERROR @ /var/www/vhosts/beautydermal.com/httpdocs/core/cache/includes/elements/modplugin/21.include.cache.php : 21) вот не вивело ничего
iWatchYouFromAfar
покажи код
Олег
<?php switch ($modx->event->name) { case 'OnUserSave': $tpl = $modx->getOption('emailTpl',$scriptProperties,'newUserTpl'); if ($mode == 'new') { $message = $modx->getChunk($tpl,array_merge($user->toArray(),$user->Profile->toArray())); $email = 'thunderrey@yandex.ua'; //$modx->getOption('formit.user_email'); $modx->getService('mail', 'mail.modPHPMailer'); $modx->mail->set(modMail::MAIL_BODY,$message); $modx->mail->set(modMail::MAIL_FROM,'no-replay@beautydermal.com'); $modx->mail->set(modMail::MAIL_FROM_NAME,'Beauty Dermal'); $modx->mail->set(modMail::MAIL_SUBJECT,'Реєстрація нового користувача'); $modx->mail->address('to',$email); $modx->mail->setHTML(true); if (!$modx->mail->send()) { $modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo); } $modx->mail->reset(); $modx->log(MODX_LOG_LEVEL_ERROR, $message); } break; }
iWatchYouFromAfar
не код плагина, а код логирования события
Олег
$message = $modx->getChunk($tpl,array_merge($user->toArray(),$user->Profile->toArray())); $modx->log(MODX_LOG_LEVEL_ERROR, $message);
iWatchYouFromAfar
нафига ты чанк пихаешь в логи?
iWatchYouFromAfar
ты получи параметры самого события, убедишься что оно работает у тебя
Yani
А разве php нельзя использовать?
наверно можно, но я сделала через set
Евгений
наверно можно, но я сделала через set
можно в fenom включить разрешение на php теги
Евгений
и тогда array_merge должен как бэ работать
iWatchYouFromAfar
прям так и хочется сахарку дать
Евгений
прям так и хочется сахарку дать
ща пойду стырю твою статью
iWatchYouFromAfar
iWatchYouFromAfar
ток че её тырить
🙈 PG
наверно можно, но я сделала через set
Можно же свой модификатор сделать https://docs.modx.pro/komponentyi/pdotools/parser#%D0%A1%D0%BE%D0%B1%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5%20%D0%BC%D0%BE%D0%B4%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D1%80%D1%8B
iWatchYouFromAfar
ща пойду стырю твою статью
сорри Жек ты не гений, ты Димас
iWatchYouFromAfar
гений вон Петя
Евгений
Миша
https://www.youtube.com/watch?v=4GNEtkthFlw&feature=em-uploademail
Yani
ну гений же
спасибо )
iWatchYouFromAfar
Олег
ты получи параметры самого события, убедишься что оно работает у тебя
с етим разобрался подскажи еще плиз как теперь параметри в чанк письма передать $message = $modx->getChunk($tpl,array_merge($user->toArray(),$user->Profile->toArray()));
iWatchYouFromAfar
https://www.youtube.com/watch?v=4GNEtkthFlw&feature=em-uploademail
вот до чего скатился модкс, теперь Зернов вместо уроков рассказывает о прожиточном минимуме) затянулись пояса))
Олег
$modx->setPlaceholders
$modx->setPlaceholders(array( 'name' => $user->get('username'), ),'my.'); в чанке вызываю [[+my.name]] верно же?
Евгений
ну вообще у тебя изначально было верно написано, setPlaceholders тут не нужно вообще
Евгений
$message = $modx->getChunk($tpl,array_merge($user->toArray(),$user->Profile->toArray()));