
Voici un petit howto qui va vous expliquer comment dépublier un noeud après une durée donnée qui peut être en jours, en secondes… sous Drupal à l’aide du module Rules
Tout d’abord, qu’est ce que le module Rules ?
Rules peut être considéré comme une évolution du module core trigger et la version améliorée pour drupal 6 de Workflow-ng de Drupal 5.
Rules permet, à la découverte d’événements, d’exécuter des actions (publier un commentaire, envoyer un mail…) automatiquement avec la possibilité de passer des conditions.
Voici donc un petit howto permettant de dé-publier un contenu après une durée donnée, ça peut être 15 jours, 30 secondes, le lundi 30 mars…
Tout d’abord, il faut installer le module Rules.
1. Création de Rule Sets
Allez dans /admin/rules/rule_sets
- Cliquer sur « Add a new rule set ».
- Ajouter un titre, par exemple « Unpublish content {rule set} » et avec pour nom machine-readable « unpublish_content ».
- Dans la partie Arguments, sélectionner « Content » comme type de données, entrer « Content {argument} » en tant que titre et « unpublish_content_content » en tant que nom machine readable.
- Sauvegarder ensuite votre formulaire
- Vous allez être redirigé vers la vue d’ensemble des rules sets et vous pourrez y voir le rule set que vous venez de créer.
- Cliquer donc sur celui-ci et ajouter une nouvelle rule en cliquant sur l’onglet « Add new rule »
- Ajouter un titre comme par exemple « Unpublish action {rule} » et cliquer sur Sauvegarder.
- Vous allez ensuite être sur une page d’édition de la rule cliquer sur « Add an action ».
- Vous allez avoir une liste de sélection, vous devrez choisir « Node|Retirer le contenu de la publication » (et NON « Rule Set|Publish content »!) et confirmer en cliquant sur Suivant.
- Vous n’avez rien à faire normalement sur le formulaire sur lequel vous avez été dirigé, hormis changer le titre et de mettre « Unpublish content {action} » pour suivre plus facilement et enfin sauvegarder.
- Aller sur la page admin/rules/rule_sets et cliquer sur votre rule (Unpublish content {rule set})
- Puis cliquer sur l’action (Unpublish action {rule}) pour l’éditer
- Ajouter une action et sélectionner « Schedule Unpublish content »
- Choisissez l’identifiant [unpublish_content_content:nid] si vous avez respecter les termes que j’ai utilisé, sinon adapter à nom machine readable donné précédemment dans la partie Arguments.
- Paramétrer la date d’exécution, par exemple 2010-02-12 10:33:55 ou « +1 day », vous pouvez vous référer aux formats PHP strtotime()
2. Création du ou des déclencheurs (trigger)
Allez dans /admin/rules/trigger
- Cliquer sur « Add a New Rule »
- Choisissez pour label « Dépublier un contenu {triggered rule} »
- Sélectionner « Node|After saving new content », puis sauvegarder
- Ajouter une action
- Sélectionner « Rule Scheduler|Schedule Unpublish content {rule set} »
- Ajouter une condition « Node|Content is published »
- Vous pouvez également ajouter une condition pour un type de contenu donné, pour cela ajouter une nouvelle condition
- Et choisissez « Node|Content as Type » et choisissez votre ou vos types de contenu.
Voilà, votre règle est crée et sera exécuté à chaque passage du cron.
J’espère que ce petit tuto aura permis de vous aider un peu ![]()
J’espère pouvoir en faire d’autres bientôt sur Rules…
Et vous avez vous d’autres méthodes ?
Similar Posts:
- Views Cloud : Nuage de tags de terme de taxonomie sous Drupal par type de contenu
- Drupal 7 – Les nouveautés
- Evolution majeure du module Drupal Views_savedsearches
- Howto install Drupal 7
- Guide de modules Drupal : Drupalistic







Il y a un module Drupal qui fait cela : scheduler.
Il permet de publier / dépublier un article à une date donnée
Bien le bonjour @Vincent,


Ceci explique pourquoi je ne comprenais pas pourquoi je ne trouvais pas d’exemple pour faire ça avec rules, alors que ça semblait si élémentaire
Un grand merci, mon article en devient quasiment obsolète
Mais bon, ça pourra peut-être servir à quelqu’un qui souhaite utiliser rules ?? lol
En tout cas, maintenant je sais presque m’en servir
Bonne journée
Re,
Je viens d’installer Scheduler, et ça ne colle pas à mes besoins.
J’ai besoin de fixer une date de durée de publication par défaut sans laisser aux créateurs des noeuds la possibilité de gérer eux-même
Par contre, je pourrais utiliser rules pour remplir automatiquement les champs rajoutés par le module scheduler.
Merci quand même
Bonne journée.
Magnifique juste ce que je cherchais!
Attention @Angelo il y a beaucoup plus simple que cette Rules finalement pour réaliser le besoin.
Reviens vers moi si besoin
Hello,
merci pour ton retour
Tu passes tjs par les rules?
Tu peux m’en dire plus?
Merci
En fait, je me suis trompé, j’ai confondu avec une autre rules que j’avais créée de la même façon et qui me posait pb pour retirer des points à la création de contenu…
Donc oublies mon précédent commentaire…
Désolé
N’hésites pas à revenir vers moi si question.
CiaO ++