Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Источники значений & в интернет-магазине "

Автор diii3Раздел Шаблоны XSLT

Ответов: 2
Просмотров: 2887
Последний ответ 10 Ноября 2012, 22:04:18
от diii3
Проблема с модулем "Обратная связь-->Шабло&

Автор don_basilioРаздел Настройка системы и модулей

Ответов: 2
Просмотров: 3045
Последний ответ 14 Ноября 2011, 20:13:47
от don_basilio
Отнять скидку зарег. пользователя от суммы которую видит гость.

Автор webtrendРаздел Шаблоны XSLT

Ответов: 0
Просмотров: 1010
Последний ответ 30 Января 2017, 12:11:20
от webtrend
Вывод суммы заказов всей истории покупок пользователя

Автор johnРаздел Шаблоны XSLT

Ответов: 1
Просмотров: 1748
Последний ответ 10 Октября 2014, 00:09:25
от admin
Вывод записей в блогах и фотографий в галереях пользователя

Автор ScreatorРаздел Макросы UMI.CMS

Ответов: 0
Просмотров: 2512
Последний ответ 27 Июня 2011, 14:13:31
от Screator

0 Пользователей и 2 Гостей просматривают эту тему.

*

AllaVK

  • **
  • 64
  • +0/-0
    • Просмотр профиля
Событие "Активация пользователя"
« : 21 Октября 2011, 10:06:51 »
Добрый день!
требуется, чтобы после активации нового пользователя модератором, пользователю приходило письмо об успешной активации.
Системой UMI предусмотрено событие systemSwitchElementActivity, в классах в модуле "Пользователи" я сделала кастомный обработчик этого события, но на активацию пользователя оно не срабатывает. Я предполагаю, что, наверное, здесь уместнее будет событие systemSwitchObjectActivity, но такого просто не существует.
Каким способом можно отследить активацию пользователя модератором?

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Событие "Активация пользователя"
« Ответ #1 : 21 Октября 2011, 13:45:47 »
пользуйся событием "users_activate" у него есть в параметре id пользователя user_id ($oEventPoint->getParam('user_id'); )

*

AllaVK

  • **
  • 64
  • +0/-0
    • Просмотр профиля
Re:Событие "Активация пользователя"
« Ответ #2 : 21 Октября 2011, 14:36:46 »
пользуйся событием "users_activate" у него есть в параметре id пользователя user_id ($oEventPoint->getParam('user_id'); )

спасибо...
еще подскажи, пожалуйста, где я могу найти хоть какую-то документацию по этому событию?
ни на одном сайте я не нашла ни слова об этом событии... его написание именно такое?

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Событие "Активация пользователя"
« Ответ #3 : 21 Октября 2011, 14:45:57 »
да, я смотрю по коду, файл /classes/modules/users/__register.php функция public function activate()

*

AllaVK

  • **
  • 64
  • +0/-0
    • Просмотр профиля
Re:Событие "Активация пользователя"
« Ответ #4 : 21 Октября 2011, 15:43:03 »
сделала так:

файл:   /classes/modules/users/custom_events.php:
 
<?php
new umiEventListener("users_activate", "users", "onActivateUser");
?>

Файл:  /classes/modules/users/__custom_adm.php:
 
<?php
abstract class __custom_adm_users {
                public function onActivateUser(iUmiEventPoint $event) {
if($event->getMode() == "after") {
//$user_id = $event->getParam('user_id');
$str = "event activate user \r \n";
file_put_contents(CURRENT_WORKING_DIR . '/statist.txt', $str, FILE_APPEND);
}
                }
      };
?>
т.е. по событию должен создаться в корне текстовый файл  в него записаться строка: event activate user

 если событие реально происходит (проверяла на других кастомных обработчиках эвентов), то файл создается и строка в него пишется....
В моем случае - у пользователя выставляется активация, профиль сохраняется... В результате ничего не происходит .... событие не сработало ((((

что я делаю не так?

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Событие "Активация пользователя"
« Ответ #5 : 21 Октября 2011, 15:48:07 »
а почему макрос лежит в /classes/modules/users/__custom_adm.php это же публичное событие не в админке происходит, надо класть его в /classes/modules/users/__custom.php

*

AllaVK

  • **
  • 64
  • +0/-0
    • Просмотр профиля
Re:Событие "Активация пользователя"
« Ответ #6 : 21 Октября 2011, 15:57:32 »
перенесла макрос в /classes/modules/users/__custom.php  - не помогло (((( все равно не срабатывает ((((

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Событие "Активация пользователя"
« Ответ #7 : 21 Октября 2011, 16:58:07 »
а у меня срабатывает, проверяйте пошагово

*

Vladimir

  • ****
  • 279
  • +48/-0
    • Просмотр профиля
Re:Событие "Активация пользователя"
« Ответ #8 : 21 Октября 2011, 17:43:52 »
Дело в том, что событие users_activate срабатывает из клиентской части. При активации из админки такого события нет.
Пхоже, это событие вообще не перехватывается в админке, так что я бы не ломал особо голову, а просто дописал точку вызова в __admin.php
С др.стороны, если активировать пользователя, открывая страницу и сохраняя, то срабатывает событие systemModifyObject

События systemSwitchObjectActivity действительно нет, потому что у объекта нет такого понятия как активность.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Событие "Активация пользователя"
« Ответ #9 : 21 Октября 2011, 17:59:17 »
Владимир, очень рад видеть вас здесь)

*

Vladimir

  • ****
  • 279
  • +48/-0
    • Просмотр профиля
Re:Событие "Активация пользователя"
« Ответ #10 : 21 Октября 2011, 18:05:32 »
Я тоже рад)

*

Vladimir

  • ****
  • 279
  • +48/-0
    • Просмотр профиля
Re:Событие "Активация пользователя"
« Ответ #11 : 21 Октября 2011, 18:07:03 »
Кстати, Алла.  Если модератор узнает о новом пользователе по ссылке в письме, то все как раз неплохо складывается: он попадает стразу на страницу редактирования пользователя, ставит галочку, сохраняет, срабатывает событие.

*

AllaVK

  • **
  • 64
  • +0/-0
    • Просмотр профиля
Re:Событие "Активация пользователя"
« Ответ #12 : 24 Октября 2011, 09:53:06 »
В-общем, событие users_activate у меня совсем никак не срабатывает... а вот systemModifyObject  - срабатывает, если активировать пользователя из админки.... попробую воспользоваться им, проверяя активность объекта в режиме before и after...

*

AllaVK

  • **
  • 64
  • +0/-0
    • Просмотр профиля
Re:Событие "Активация пользователя"
« Ответ #13 : 24 Октября 2011, 09:54:32 »
Если модератор узнает о новом пользователе по ссылке в письме, то все как раз неплохо складывается: он попадает стразу на страницу редактирования пользователя, ставит галочку, сохраняет, срабатывает событие.

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

*

Vladimir

  • ****
  • 279
  • +48/-0
    • Просмотр профиля
Re:Событие "Активация пользователя"
« Ответ #14 : 24 Октября 2011, 10:02:58 »
Это не проблема. В шаблоне есть user_id (я о tpl), так что путь можно сконструировать
Отвечает за это блок mail_admin_registrated из tpls/users/register/default.tpl
« Последнее редактирование: 24 Октября 2011, 10:04:31 от Vladimir »