Le code suivant peut-être d'intérêt. C'est un petit extrait d'un module que j'ai dû créer pour expirer automatiquement des publicités sur un site intranet. Les nœuds sont simplement dépubliés après un certain nombre de jours que vous spécifiez dans le code, de sorte qu'ils peuvent être masqués sur votre site, puis l'auteur du contenu peut simplement ré-publier les nœuds s'ils le souhaitent.
/**
* 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();
}
}
}
merci mais wouter la date d'expiration est différent à chaque nœud et l'affiche préciser donc je ne peux pas mettre une valeur de jour statique dans views.it devrait obtenir sa valeur d'un autre champ de noeud. –