Всем привет. Есть тип материала - новости. Мне нужно, чтобы все новости регулярно пересохранялись. Есть rules. Выбираю событие - регулярное выполнение задач крон. Пытаюсь добавить action - но селектор данных не предоставляет для этого ноды. Пробовали модуль Resave node - всё красиво, настройки понятные... Но не работает (ничего не пересохраняется). Какие еще есть способы?
Комментарии
Но зачем? Задача изначально какая?
У меня есть правило: при создании материала типа Мероприятие автоматически создается материал Новость, который полностью клонирует Мероприятие. По итогу в новости появляется поле типа "связь с мероприятием". Но у мероприятия такой связи нет. Мне нужно, чтобы при внесении изменений в мероприятии проходило изменение и в соответствующей Новости, т.к. мероприятия можно редактировать, а новости нет (чтобы пользователь не выполнял двойную работу). Для этого у меня есть еще правило, по которому Новость перед сохранением берет значения полей мероприятия. И вот, остается шаг - сделать так, чтобы периодически новости пересохранялись автоматически. Возможно, цепочка длинная, и можно было сделать это проще, но большая часть уже сделана, и теперь остался один шаг - пересохранять автоматически Новости.
Мне сложно понять, зачем вообще дублировать контент? Раз необходима такая синхронизация, почему вообще не обойтись одним типом материала "мероприятие"?
Ну а если надо синхронизировать, зачем это по крону-то делать? Так-то разумнее при изменении источника, как и при создании, используя какой-нибудь hook_node_update.
Ссылки должны отличаться. По итогу мероприятия - это то, что произойдет после текущего момента времени. А новости - то, что было до текущего момента времени.
Это могут быть одни и те же данные по разным url с разным оформлением. Для этого совсем не обязательно делать разные виды сущностей.
Подскажите пожалуйста, каким способом это делается. На данном этапе что-то менять уже не получится, но на будущее пригодилась бы эта информация.
В простейшем случае, показывать второй вариант представления можно через views с параметрами, например. А вообще, надо имть некое ТЗ, чтобы делать выбор.
А в вашем варианте, совсем не обязательно иметь ссылки в обе стороны, чтобы синхрозироваться без крона при сохранении. Просто надо поискать в другом типе материала тот, что имеет ссылку на редактируемый, и его обновлять.
При изменении источника не получается, т.к. настроено всё таким образом, что у основного материала нет ссылки на свой клон. А у клона есть ссылка на основной материал. Поэтому сейчас всё настроено так, что надо, чтобы новости автоматически периодически пересохранялись.
Вы пытаетесь решить проблему крайне не удачного изначально архитектурного решения, крайне неудачным способом.
Тут или придётся сделать нормально без лишних сущностей вывод и не искать себе проблем, и это самое лучшее решение. Или пора перейти от попытки накликать сайт к программированию, чтобы превозмочь эту проблему, не создавая совсем уж чего-то чудовищного. Потому, что желания сделать что-то похожее никто не предусмотрел, и нужного функционала не написал.