Не срабывают правила в ответ на события "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. Регистрация пользователей настроена с проверкой адреса электронной почты при создании учётной записи.
Комментарии
Они срабатывают, но не всегда... иногда бывают редиректы - то есть работал PHP работал, строил страничку, добавлял на неё ваш js, а потом опа - drupal_goto() и строится новая страничка, на которой уже не сработает "After saving a new user account" и не добавится ваш js. Если уж тестить - то писать в лог с помощью watchdog().
А что же делать, если их все же надо обработать? Не срабатывают правила! Я думаю, что и эта моя проблема связана с этим.
Вы можете не вырывать слова из контекста, а понимать смысл написанного?
Правила срабатывают, срабатывают на миллионах сайтов на друпал. Если они у вас не работают - ищите проблему у себя (в модулях, которые стоят на вашем сайте; в кастомном коде вашего сайта)!
"но не всегда" выше относилось к вашему тесту через добавление js кода (то есть относилось не к срабатыванию правила, а к видимому результату того теста, что вы используете - правило работает, но результат видим не всегда). Если какой-то код делает редирект, то никакого вашего кастомного js по этому правилу вы не увидите. Тестируйте через watchdog().
Если вы думаете, что та ваша проблема связана с этой - то лично я не вижу как добавление js кода на страницу может влиять на ту вашу проблему.
Учел и для начал проверил, нет ли в Rules готового действия для записи в системный журнал. Такого не нашел, но... ... там есть готовое действие для показа сообщения!
Поменял тестовый Action на "Show a message on the site
Параметр: Сообщение: OOOOOO YES!"
События отработали, паранойя пошла искать новый объект для издевательств, а конкретно этот вопрос можно считать закрытым!
Рад, что у вас есть немного здравого смысла Пожалуйста, в следующий раз выбирайте не мои модули как объект для издевательств