我想添加到期日期字段到我在Drupal中的自定義內容類型。它應該指定天數(創建節點後7-15天),並且在到達節點後不應該在站點上顯示給訪問者。但我需要一個更新選項才能讓創作者更新並再次激活它。將過期日期添加到Drupal中的節點
難以推理嗎?我該怎麼做?
我想添加到期日期字段到我在Drupal中的自定義內容類型。它應該指定天數(創建節點後7-15天),並且在到達節點後不應該在站點上顯示給訪問者。但我需要一個更新選項才能讓創作者更新並再次激活它。將過期日期添加到Drupal中的節點
難以推理嗎?我該怎麼做?
你已經嘗試過搜索模塊嗎?
這裏有一個可能會訣竅http://drupal.org/project/auto_expire。還有其他的,但也許你應該檢查一下,看看哪一個適合你的需求(或者如果需要可以很容易地改變)。
您可以使用視圖來做到這一點。創建一個新的視圖,專門針對該類型的一個或多個節點,並使用「節點:更新」對其進行過濾。然後指定您需要多少天。
您可以爲原始海報創建視圖並讓他更新帖子,這將重置計數器。
一個有創意的解決方案,但它應該工作。
看看Node expire,它根據Rules爲節點設置定時器。對於更簡單的方法,Scheduler可以做到這一點。兩者都鏈接在由wimvds鏈接的Auto Expire模塊中,所以有一些重複的措施,儘管它們似乎有不同的方法。
下面的代碼可能是有趣的。這是我必須創建的一個模塊,用於在Intranet站點上自動過期廣告。節點在代碼中指定的若干天后簡單地取消發佈,因此可以隱藏在您的網站中,然後內容的作者可以在需要時重新發布節點。
/**
* Implementation of hook_cron().
*/
function auto_unpublish_pages_cron() {
//we only want to deal with all blog_post content type nodes
$c_type = 'blog_post';
//grab all nodes
$c_nodes = node_load_multiple(array(), array('type' => $c_type));
//setup time stamp for node expiry
$message_search_data = strtotime('- 7 days');
//now loop through nodes, & if they are old, expire them
foreach ($c_nodes as $m) {
$obj = entity_metadata_wrapper('node', $m);
//check when was last updated and if its still published
$last_update = $obj->changed->value();
$published = $obj->status->value();
//if it's still published & it's not recent, unpublish it
if (($message_search_date > $last_update) && $published<>0) {
$obj->status = 0;
$obj->save();
}
}
}
感謝沃特但到期日期是在每個節點和海報指定它,所以我不能把一個靜態值一天它在views.it應該從節點的另一場得到它的值不同。 – 2010-12-09 13:27:43