Rules. Не срабывают события на регистрацию пользователя [РЕШЕНО]

Главные вкладки

Аватар пользователя Shizuku Shizuku 6 июля 2013 в 13:16

Не срабывают правила в ответ на события "After saving a new user account" и/или "Before saving a user account".

Как проверял.
Создал Event с одним из вышеуказанных событий, затем добавил Action - Выполнение кода PHP:

<?phpdrupal_add_js('jQuery(document).ready(function () { alert("Yes! Yes! Yes!"); });', 'inline');
?>

Активировал. Потом зарегистрировал на сайте нового пользователя... Подтвердил свой Email, зашел в профиль, потыкался. Тестового сообщения так и не увидел!
Для проверки изменил событие в правилах на "Content is Viewed" и потыкал по материалам сайта... - Работает! Каждый раз при просмотре нового материала выскакивает тестовое сообщение.

События при создании профиля, вроде "After saving a new профиль", тоже не отрабатывают.

Вопрос очевиден: как отрабатывать действия при регистрации пользователя? Они же не срабатывают?!

PS. Регистрация пользователей настроена с проверкой адреса электронной почты при создании учётной записи.

Комментарии

Аватар пользователя duozersk duozersk 6 июля 2013 в 13:30

Они срабатывают, но не всегда... иногда бывают редиректы - то есть работал PHP работал, строил страничку, добавлял на неё ваш js, а потом опа - drupal_goto() и строится новая страничка, на которой уже не сработает "After saving a new user account" и не добавится ваш js. Если уж тестить - то писать в лог с помощью watchdog().

Аватар пользователя duozersk duozersk 6 июля 2013 в 14:15

Вы можете не вырывать слова из контекста, а понимать смысл написанного?
Правила срабатывают, срабатывают на миллионах сайтов на друпал. Если они у вас не работают - ищите проблему у себя (в модулях, которые стоят на вашем сайте; в кастомном коде вашего сайта)!

"но не всегда" выше относилось к вашему тесту через добавление js кода (то есть относилось не к срабатыванию правила, а к видимому результату того теста, что вы используете - правило работает, но результат видим не всегда). Если какой-то код делает редирект, то никакого вашего кастомного js по этому правилу вы не увидите. Тестируйте через watchdog().
Если вы думаете, что та ваша проблема связана с этой - то лично я не вижу как добавление js кода на страницу может влиять на ту вашу проблему.

Аватар пользователя Shizuku Shizuku 6 июля 2013 в 14:27

"duozersk" wrote:
то писать в лог с помощью watchdog().

Учел и для начал проверил, нет ли в Rules готового действия для записи в системный журнал. Такого не нашел, но... ... там есть готовое действие для показа сообщения!

Поменял тестовый Action на "Show a message on the site
Параметр: Сообщение: OOOOOO YES!"

События отработали, паранойя пошла искать новый объект для издевательств, а конкретно этот вопрос можно считать закрытым!

Аватар пользователя duozersk duozersk 6 июля 2013 в 23:25

Рад, что у вас есть немного здравого смысла Smile Пожалуйста, в следующий раз выбирайте не мои модули как объект для издевательств Smile