Date de publication: le mercredi 12 décembre 2007 à 00h34
Dernière modification: par Pascal BOYER le lundi 17 décembre 2007 à 23h21
« Article précédent: eZ publish : crontab et runcronjobs.php
» Article suivant: Workflow : configurer un multiplexeur pour lancer un workflow à partir d'un workflow
Workflow : comment modérer les commentaires à priori
Le présent article explique comment mettre en place un système de modération à priori des commentaires que peuvent laisser les visiteurs au bas des articles de votre site.
Dès lors qu'un tel mécanisme de modération est en place, les commentaires rédigés par les visiteurs ne sont publiés qu'après avoir été approuvés par au moins l'une des personnes auxquelles vous aurez attribuer le droit d'approbation.
Pour accéder à l'interface de gestion des workflow (flux de travail), cliquez, dans l'interface d'administration de eZ Publish, sur l'onglet Administration puis sur le lien Workflows dans le menu de gauche:
Fig. 1: Nom du seul groupe de workflow présent par défaut
Bien qu'il soit tout à fait possible de créer un groupe de workflow, nous nous en tiendrons, pour la suite de l'article, à l'utilisation du groupe par défaut.
Donc, cliquez à présent sur le lien Standard:
Fig. 2: Affichage de la liste (ici vide) des workflow définis dans le groupe Standard.
A partir de la vue ci-dessus vous pouvez créer un nouveau workflow en cliquant sur le bouton Nouveau processus de workflow:
Fig. 3: Première étape de création d'un worflow: le nommer
...que l'on nomme comme indiqué ci-dessus (ou tout autrement, le nom du workflow étant totalement libre).
:
Pour la modération des commentaires, l' événement doit être celui proposé par défaut, à savoir de type Approuver (voir fig. 3 )
Cliquez ensuite sur le bouton Ajouter un événement (à droite du champ Événement / Approuver):
Fig. 4: Définition des paramètres du workflow
A partir du cadre ci-dessus, vous définissez, en cliquant sur le bouton Ajouter des utilisateurs, les utilisateurs qui auront le droit d'approuver les commentaires. Le cadre qui s'affiche alors présente la liste des Groupes d'utilisateurs du système. Pour accéder aux utilisateurs il est nécessaire de cliquer sur le nom d'un de ces groupes puis de sélectionner un ou plusieurs utilisateurs du groupe.
Il est possible de répéter à plusieurs reprises cette opération d'ajout d'utilisateurs.
Vous pouvez également sélectionner des groupes d'utilisateurs plutôt que chaque utilisateur d'un même groupe.
Enfin, il vous est possible de définir des groupes d'utilisateurs dont les commentaires n'auront pas besoin d'être modérés et qui seront donc directement publiés.
Validez tous vos paramètres/choix avec le bouton OK:
Fig. 5: Le nouveau workflow apparaît à présent dans la liste des workflow du groupe Standard
Workflow : créer un déclencheur (trigger)
Cliquez sur le lien Déclencheurs dans le menu de gauche puis sélectionnez le workflow que vous venez de créer:
Fig. 6: Le nouveau workflow est associé au déclencheur content/publish/before/
Workflow : approuver ou rejeter les commentaires
A partir de maintenant, plus aucun commentaire ne sera publié sans avoir été préalablement approuvé par l'un des approbateurs que vous avez définis.
Lorsqu'un commentaire est écrit puis envoyé par un visiteur, il devient accessible depuis l'interface d'administration.
Pour le visualiser, cliquez sur l'onglet Mon compte puis sur le lien Collaboration dans le menu gauche:
Fig. 7: Liste des commentaires en attente d'approbation
Pour approuver ou rejeter un commentaire, cliquez, dans le cadre Liste des éléments, soit sur le petit icône qui précède le lien soit sur le lien lui-même.
Dans les deux cas ceci s'affiche:
Fig. 8: Interface de gestion d'un élément en attente
Les deux boutons Approuver et Rejeter sont d'un usage qui se passe de toute explication.
Quant au bouton Ajouter un commentaire il ne doit être utilisé qu'après avoir effectivement ajouté un commentaire dans le cadre du même nom placé juste au dessus du bouton.
La rédaction du commentaire validée avec ce bouton, un nouveau cadre est affiché au bas de la page:
Fig. 9: Cadre présentant le commentaire ajouté par l'approbateur
Le fait d'ajouter un commentaire n'approuve ni ne rejette le commentaire du visiteur. Vous devez donc valider l'une de ces deux options après avoir ajouté un commentaire.
Approuver ou rejeter un commentaire renvoie à la figure 7. Cliquer sur le bouton Inbox permet d'afficher ceci:
Fig. 10: Liste des commentaires approuvés et rejetés
:
Les lignes présentant le chiffre 1 entre parenthèses indiquent que l'objet contient 1 commentaire ajouté par un approbateur
:
Contrairement à ce que peut laisser penser la présence des croix rouge, il est impossible de supprimer quoique ce soit dans ce cadre.
Cela fait des années que régulièrement
des personnes demandent
que les éléments contenus par le cadre Inbox puissent être supprimés mais pour l'instant, rien n'y fait...
Les commentaires ajoutés par les approbateurs ne sont pas affichés sur le site public. Seul le texte rédigé par le visiteur est publié.
Pour publier les commentaires approuvés
La publication des commentaires approuvés ne sera effective qu'après que le script workflow.php a été exécuté.
:
Par défaut, ce script n'est pas exécuté par le script runcronjobs.php
Vous devez donc créer, dans les siteaccess publics concernés, une surcharge du fichier de configuration settings/ cronjob.ini
Voici ce que doit contenir cette surcharge:
vi settings/siteaccess/plain_site/cronjob.ini.append.php
1 <?php /* #?ini charset="utf-8"? 2 3 [CronjobSettings] 4 Scripts[]=workflow.php 5 6 [CronjobPart-workflow] 7 Scripts[]=workflow.php 8 9 */ ?>
Pour lancer manuellement le script workflow.php, videz les caches une fois puis lancez cette commande:
./runcronjobs.php
... Running cronjobs/workflow.php Checking for workflow processes Status list (2): 1 (5): 1 2 out of 2 processes was finished
Et du coup les commentaires approuvés sont publiés sur le site.
On voit donc qu'il est nécessaire d'exécuter assez périodiquement le script workflow.php. Et pour cela cron est tout désigné (voir cet article pour plus d'informations sur l'utilisation et la configuration de cron et de runcronjobs.php).
Exécuter uniquement le script workflow.php
La partie importante du fichier de surcharge cronjob.ini.append.php est la section [CronjobPart-workflow] car c'est elle qui permet d'exécuter le script runcronjobs.php avec cette option:
./runcronjobs.php workflow
Running cronjob part 'workflow' Running cronjobs/workflow.php Checking for workflow processes Status list (2): 1 (5): 1 2 out of 2 processes was finished
Si la section [CronjobPart-workflow] est inexistante, alors la sortie de la commande est:
./runcronjobs.php workflow
Running cronjob part 'workflow' Notice: No scripts found for execution.
Donc, créez dans le répertoire /root un petit script contenant ceci:
#!/bin/bash
cd /usr/local/www;
/usr/bin/php runcronjobs.php workflow;
exit 0
...puis ajoutez une ligne à la table cron de root:
crontab -u root -e
0-59/15 * * * * /root/ezpWorkflow
De la sorte le script workflow.php sera exécuté tous les quarts d'heure et les commentaires publiés au plus 15 minutes après avoir été approuvés.
Commentaires
-
@EZPUBLISH DEVELOPPEUR
test d'approbation
@EZPUBLISH DEVELOPPEUR
ajout de commentaire
@ RICOZOR
notfication par email
Moderation sur tous les objets !!!














