2014-11-16 2 views
0

Что я хотел бы сделать, это удалить (удалить) узел после «до даты», который выбирается вручную при создании узла. Я уже тестировал такие решения, как истечение срока действия узла, расписание и другие, но я не могу просто использовать уже существующую и переменную дату в узле.Как удалить узлы после окончания «до даты» в drupal?

Это старый drupal 6, и я использую календарь, который, кажется, имеет этот параметр, но я не могу найти, почему и как это перестало работать. Я даже не могу найти страницу конфигурации.

ответ

1

Вы бы хотели создать для этого специальный модуль? Если это так, я могу привести несколько примеров кода для некоторых решений. Как правило, это был один крюк cron, который удалял или удалял узлы, прошедшие «до настоящего времени».

В приведенной ссылке посмотрите комментарий: https://www.drupal.org/node/28142#comment-48472 Это дает пример кода «ok», который может удалить узел, когда он старше 30 дней. Все, что вам нужно сделать, это изменить db_query.

Если вы используете CCK для хранения поля даты. Прежде всего убедитесь, что это относится к нескольким типам контента, это означает, что в настоящее время поле CCK будет разделено на отдельную таблицу, вместо этого это произойдет в будущем, и это не сработает.

Что вы будете тогда смотреть на это делать запрос типа:

$ запрос = «SELECT нидь, UID FROM {узла} п LEFT JOIN {content_field_date} d ON n.nid = d.nid WHERE d.field_date_value < '% s' "; Где «content_field_date» - это имя таблицы, в которой хранится дата {content_ {machine_name}} Где 'field_date_value' - это поле в этой таблице, в котором хранится это значение {{machine_name} _ {field_type}}

В зависимости от того, как содержимое хранится в поле «field_date_value», вам может потребоваться преобразовать его в штамп времени Unix с помощью функции MySQL: UNIX_TIMESTAMP, например UNIX_TIMESTAMP (d.field_date_value).

+0

Да, это подход, который мне нужен для решения этой проблемы, пожалуйста, я буду очень рад, если вы сможете помочь в создании этого настраиваемого модуля. – Russo

+0

Я нахожу это в drupal.org пользователем robertDouglass здесь: https: // www.drupal.org/node/28142 С помощью этого кода вы можете удалять узлы с помощью cron, но проблема в том, что я не понимаю, как получить поле даты и сравнить его, чтобы я мог знать, является ли пост старше моего "встретиться". – Russo