Помогите решить, пожалуйста.
Есть форум, несколько разделов.
1 раздел - общедоступный.
2 раздел - доступ определённой роли (роль 2).
3 раздел - доступ ещё одной роли (роль 3, админы, например).
Мне было необходимо сделать так, чтобы при создании новой темы в форуме отправлялось сообщение всем юзерам.
Я настроил правило, при котором сообщение о новой теме высылается всем юзерам роли 2.
И меня это устроило.
Но при создании темы в разделе 3 тоже отправляется сообщение всем, у кого роль 2.
Вопрос: как настроить правило так, чтобы уведомление о новой теме в разделе 3 отправилось только тем, у кого роль 3?
Спасибо!
Комментарии
Есть такой момент: создать тему в разделе 3 могут только юзеры с ролью 3.
Быть может это как-то можно использовать в настройках?
Я что-то не смог придумать как...
2 правила: 1 для всех разделов ,кроме 3го, 2е только для 3го. создать компонент который будет получать имя роли и производить проверку на соответствие данных. может быть даже два компонента понадобятся.
Спасибо за подсказку!
А как "выцепить" номер раздела для правила?
также через сравнение данных. чем у вас задаются разделы? таксономией? тогда надо сравнивать значение поля сущности с термином.
Спасибо за помощь.
Появилась другая проблема.
При создании материала (после нажатия кнопки "отправить") браузер долго "крутит", системный журнал показывает отправку писем пачками по 5 штук в 2-3 секунды (я пока не понял, почему такая очередь, у меня модуль smtp), в итоге Ошибка сервера 500. Материал создался, но я не совсем понял, почему нужно было ждать отправки уведомлений?
Сервер я перенастроил (увеличил таймаут), но это не выход. С увеличением количество пользователей проблема повторится.
Почему правило срабатывает именно так?
Настройки правила такие:
Может быть, можно добавить какое-то условие, что материал не просто добавлен, но и браузер перезагрузился?
Или как-то отложить на 1 минуту отправку писем?
Есть модуль , может быть, настроить через него отправку любых сообщений с задержкой?
Но мне кажется, что задания в кроне будут выполняться каждую минуту, и грузить сервер...
Попробовал использовать компонент (action - Отправить уведомление пользователю роли), в котором только действие на отправку, и запуск правила через Rules Scheduler, пока не разобрался, как настроить отложенное время (типа now + 30 sec), всё равно в итоге тестовые уведомления отправились в одно время после запуска крона.
Письма как бы отправились, но в них не сработали токены
В настройке компонента в списке токенов нет нужных (node:title, node:autor).
Письмо приходит с пустыми полями, вместо заголовка и имени юзера.
Но через Rules это же действие (action - Отправить уведомление пользователю роли) даёт возможность использовать нужные токены, и письма отправляются.
Короче, я запутался.
Нужно решить вроде бы простую задачу, но не ладится.
Задача: после создания ноды (определённых типов материала) отправить уведомление о создании этой ноды пользователям определённой роли, но чтобы отправка уведомлений началась с задержкой 30сек после сохранения материала.
Повторюсь, простое правило на отправку мгновенного уведомления срабатывает так, что пока уведомления всем не отправятся, браузер не загрузит страницу с созданным материалом, или вообще выдаст 500 ошибку сервера, так как юзеров много, и отправка через внешний smtp не такая быстрая.
Помогите, пожалуйста!
По последнему вопросу сам разобрался
Единственное, что мне не нравится, это то, что у меня выполнение компонента отложено на 10 секунд, а отправка уведомления идёт всё равно по крону (1 раз в час). Принудительное выполнение крона работает.
С Elysia Cron не удалось подружиться.
Настроил отложенное событие выполняться раз в минуту, ничего не происходит, задача висит в расписании больше минуты.
Если принудительно запустить выполнение крона, то сообщение не отправляется (в журнале ошибок нет), хотя очередь в расписании очищается.
Если кто подскажет по этому вопросу, буду благодарен.