2014-11-16 23 views
0

我想要做的是在節點創建時手動選擇的「到日期」之後刪除(刪除)一個節點。我已經測試過節點過期,時間表等其他解決方案,但我無法簡單地在節點中使用我現有的和可變的日期。如何刪除drupal中「到日期」之後的節點?

這是一個古老的Drupal 6,我使用的日曆似乎有這個選項,但我無法找到爲什麼或如何停止工作。我甚至找不到配置頁面。

回答

1

你願意爲此創建一個自定義模塊嗎?如果是這樣,我可以提供一些解決方案的代碼示例。它通常是一個單一的cron鉤子,它可以刪除或取消發佈超過'迄今'的節點。

在你給定的鏈接中,看看這個評論:https://www.drupal.org/node/28142#comment-48472這給出了一個'ok'代碼示例,可以刪除30天以前的節點。所有你需要做的就是改變db_query。

如果您使用CCK存儲日期字段。首先確保它在多種內容類型上,這是爲了確保CCK字段現在被拆分成單獨的表格,而不是在將來這樣做,這會失敗。

什麼你就接着看這樣做就像是一個查詢:

$查詢=「選擇NID,UID FROM {節點} n的LEFT JOIN {} content_field_date d在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'中的存儲方式,您可能需要使用MySQL函數將其轉換爲Unix時間戳:UNIX_TIMESTAMP,示例UNIX_TIMESTAMP(d.field_date_value)。

+0

是的,這是我需要解決這個問題的方法,如果你可以幫助構建這個定製模塊 – Russo

+0

我在用戶robertDouglass在這裏找到這個在drupal.org這裏: https:// www.drupal.org/node/28142 有了這段代碼,你可以使用cron刪除節點,但問題是我不明白如何得到我的日期字段並比較它,所以我可以知道該帖子是否比我的年齡大「至今」。 – Russo