Создал материал рассылка, есть 3 поля
* тема(заголовок)
* тест(body)
* и список муниципальных образований (можно выбрать несколько)(ссылка на термин таксономии)
1. Первый район
2. Второй район
3. ...
4. 30-район
При регистрации пользователь так же может выбыть одно из МО.
После сохранения материала, его текст должен отправиться всем пользователям у которых МО совпадает с МО материала
Обычным правилом пока сделал что сообщение приходит на почту всем пользователям
я так понял нужно добавить условие но как его оформить не знаю
вот так я сейчас выкачал список всех МО из сохраненного материала
<?php
$arr_mo=$node->field_mo_org['und'];
$result = count($arr_mo);
for ($i=0; $i<$result; $i++) {
$mo=$node->field_mo_org['und'][$x]['taxonomy_term']->name;
drupal_set_message('<pre>'.print_r($mo,true).'</pre>');
//Второй район
//25-район
}
?>
А дальше все.. тупик как оформить условие нужен ли здесь вообще перебор не понимаю
в условии ведь можно вернуть только true либо false, допустим я выкачаю массив из пользователей у которых МО равен тем, что в результате выше, но опять же я получу массив, а как заставить работать условие не знаю.
Комментарии
1. Выбрать список юзеров по условию.
2. Обойти циклом всех выбранных юзеров (в цикле будет выполняться отправка сообщения).
Это без написания кода можно сделать? или все таки придется обращаться к базе и выкачивать?
Поставьте devel.
foreach, не?
P.S. И зачем вам count, непонятно.
как отправить письма всем пользователям перебрав полученный массив?
допустим я их переберу а как в цикле запустить отправку я не понял, не писать же мне в цикле целый скрипт отправки письма на php
у меня стоит devel мне нужно было задать переменную по которой я буду извлекать пользователей drupal_set_message я написал только чтобы проверить что в переменную действительно попало значение
count задает ограничитель для перебора for, который в свою очередь нужен был чтобы в переменную попадали разные значения, дальше по-хорошему в зависимости от значения переменной мне нужно выкачивать пользователей у которых поле МО равно текущему значению $mo, снова получу массив, и как мне разослать письма все пользователям массива не понимаю
с foreach понял что вы имели в виду, но условие в правилах возвращает только true либо false если я туда засуну foreach то он мне вернется результат из кучи true и fаlse соответственно условие не сработает
Имхо, имеет смысл написать для рулсов кастомный экшен, который в качестве аргумента примет значение поля. За основу взять стандартный экшен отправки емэйла, чтобы можно было из админки менять текст письма.
Если сможете "наклацать" вьюшку с контекстным фильтром по нужному полю - можно реагировать на добавление ноды (триггер "После добавления материала"), и по аналогии с этим мануалом сообразить правило.
Если нет - смотрите EntityFieldQuery, там можно делать выборку по параметрам и значениям полей, и по ней уже циклом.
Почему нет??
Потому что велосипед уже готов.
Могу сделать представление с контекстным фильтром. За подсказку спасибо, не знал что можно повесить правило на views