Пересохранение ноды по крону

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

Аватар пользователя gera8774 gera8774 24 мая 2021 в 23:09

Всем привет. Есть тип материала - новости. Мне нужно, чтобы все новости регулярно пересохранялись. Есть rules. Выбираю событие - регулярное выполнение задач крон. Пытаюсь добавить action - но селектор данных не предоставляет для этого ноды. Пробовали модуль Resave node - всё красиво, настройки понятные... Но не работает (ничего не пересохраняется). Какие еще есть способы?

Комментарии

Аватар пользователя gera8774 gera8774 25 мая 2021 в 7:51

У меня есть правило: при создании материала типа Мероприятие автоматически создается материал Новость, который полностью клонирует Мероприятие. По итогу в новости появляется поле типа "связь с мероприятием". Но у мероприятия такой связи нет. Мне нужно, чтобы при внесении изменений в мероприятии проходило изменение и в соответствующей Новости, т.к. мероприятия можно редактировать, а новости нет (чтобы пользователь не выполнял двойную работу). Для этого у меня есть еще правило, по которому Новость перед сохранением берет значения полей мероприятия. И вот, остается шаг - сделать так, чтобы периодически новости пересохранялись автоматически. Возможно, цепочка длинная, и можно было сделать это проще, но большая часть уже сделана, и теперь остался один шаг - пересохранять автоматически Новости.

Аватар пользователя bsyomov bsyomov 25 мая 2021 в 15:36

Мне сложно понять, зачем вообще дублировать контент? Раз необходима такая синхронизация, почему вообще не обойтись одним типом материала "мероприятие"?

Ну а если надо синхронизировать, зачем это по крону-то делать? Так-то разумнее при изменении источника, как и при создании, используя какой-нибудь hook_node_update.

Аватар пользователя gera8774 gera8774 26 мая 2021 в 13:01

Ссылки должны отличаться. По итогу мероприятия - это то, что произойдет после текущего момента времени. А новости - то, что было до текущего момента времени.

Аватар пользователя bsyomov bsyomov 26 мая 2021 в 14:21
1

Это могут быть одни и те же данные по разным url с разным оформлением. Для этого совсем не обязательно делать разные виды сущностей.

Аватар пользователя gera8774 gera8774 27 мая 2021 в 7:35

Подскажите пожалуйста, каким способом это делается. На данном этапе что-то менять уже не получится, но на будущее пригодилась бы эта информация.

Аватар пользователя bsyomov bsyomov 27 мая 2021 в 19:38
1

В простейшем случае, показывать второй вариант представления можно через views с параметрами, например. А вообще, надо имть некое ТЗ, чтобы делать выбор.

А в вашем варианте, совсем не обязательно иметь ссылки в обе стороны, чтобы синхрозироваться без крона при сохранении. Просто надо поискать в другом типе материала тот, что имеет ссылку на редактируемый, и его обновлять. Smile

Аватар пользователя gera8774 gera8774 26 мая 2021 в 13:03

При изменении источника не получается, т.к. настроено всё таким образом, что у основного материала нет ссылки на свой клон. А у клона есть ссылка на основной материал. Поэтому сейчас всё настроено так, что надо, чтобы новости автоматически периодически пересохранялись.

Аватар пользователя bsyomov bsyomov 27 мая 2021 в 19:46
1

Вы пытаетесь решить проблему крайне не удачного изначально архитектурного решения, крайне неудачным способом.
Тут или придётся сделать нормально без лишних сущностей вывод и не искать себе проблем, и это самое лучшее решение. Или пора перейти от попытки накликать сайт к программированию, чтобы превозмочь эту проблему, не создавая совсем уж чего-то чудовищного. Потому, что желания сделать что-то похожее никто не предусмотрел, и нужного функционала не написал. Smile