Друзья подскажите пожалуйста как реализовать автоматическое удаление коллекции полей из ноды в зависимости от другого поля например "дата". Или как автоматически менять выбор из поля типа "список" в зависимости от того же поля "дата".
Есть модуль scheduler, но он снимает всю ноду с публикации, а мне нужна работа с полями.
Автоматическое удаление коллекции полей из ноды
Главные вкладки
Лучший ответ
Я решил этот вопрос в другом проекте. Решил не методом удаления, а методом фильтрации. Спасибо ХулиGUN за наводку. Хочу поделиться этим решением.
1. Нужен модуль Date и Field collection
2. В модуле Date дополнительно включил Date Views
3. В типе материала создал поле типа "Коллекция полей" с множественным добавлением.
4. В созданной коллекции полей добавил нужные поля и поле типа "Дата"
5. Создал Views в которой вывел поля из коллекции полей. Для вывода полей по отдельности из коллекции полей нужно создать связь во Views в разделе связи.
6. В качестве фильтрации:
а) тип материала
б) Дата: Дата (field_collection_item)
Filter any Views field_collection_item date field.
7. настройки фильтра "Дата" на криншоте.
Как происходит фильтрация. Если в поле "Дата" время больше текущего времени - 5 минут "now-5 minute", то эту коллекцию полей в материале показываем, если нет скрываем.
Комментарии
А теперь конкретно опишите задачу, что именно нужно без всяких "например". У Вас это плохо получается
Есть коллекция полей. В ноде их может быть любое количество. Мне нужно чтобы каждое количество полей удалялось из ноды автоматически по расписанию. На мой взгляд есть два решения этой задачи.
1. в наборе полей создать поле типа дата и по наступлению события поля "дата" удалять эту коллекцию полей
2. тоже поле дата + чекбоксы ДА и НЕТ. по умолчанию НЕТ, а когда пришло событие из поле дата ставим ДА.
А потом во views фильтровать.
Я так понимаю, что в этой ситуации нет готового решения в виде модуля.
Надо разбираться с Rules.
Может кто сталкивался с подобной задачей или у кого в закладках есть ссылка на подобное решение. Буду очень признателен за помощь.
Rules
Вангую изначально неправильную архитектуру. Поэтому и просил вначале описать суть задачи, почему именно так, а не что нужно сделать.
Rules, но не вижу смысла использовать ещё одно bool поле которое по сути равно field_date <= now()
На данный момент я вижу множественные ошибки в архитектуре проекта и поэтому советовать что-то конкретно не вижу смысла до подробного описания задачи. Зачем, например удалять поля, если их можно просто не показывать по тому же условию field_date <= now()?
Спасибо. now() это прямой запрос в MySQL, но как его правильно реализовать в проекте? Насколько я понимаю views напрямую работает с базами данных, можно ли такое условие задать через views?
Посмотрите мануалы тут.
Спасибо большое!!!
Я не понял как это сделать.
В фильтре я добавляю поле дата, ну дальше вот что
Я решил этот вопрос в другом проекте. Решил не методом удаления, а методом фильтрации. Спасибо ХулиGUN за наводку. Хочу поделиться этим решением.
1. Нужен модуль Date и Field collection
2. В модуле Date дополнительно включил Date Views
3. В типе материала создал поле типа "Коллекция полей" с множественным добавлением.
4. В созданной коллекции полей добавил нужные поля и поле типа "Дата"
5. Создал Views в которой вывел поля из коллекции полей. Для вывода полей по отдельности из коллекции полей нужно создать связь во Views в разделе связи.
6. В качестве фильтрации:
а) тип материала
б) Дата: Дата (field_collection_item)
Filter any Views field_collection_item date field.
7. настройки фильтра "Дата" на криншоте.
Как происходит фильтрация. Если в поле "Дата" время больше текущего времени - 5 минут "now-5 minute", то эту коллекцию полей в материале показываем, если нет скрываем.