Maîtriser son processus de publication avec Drupal

machine à écrire ancienne

La mise en place d'un processus de publication peut très vite devenir complexe dès lors que les différents états possibles d'un contenu, jusqu'à sa publication, et le nombre d'acteur devant intervenir sur celui-ci deviennent conséquents. Ou encore lorsqu'une organisation souhaite décentraliser la production de contenus sur son site Internet tout en maitrisant le processus et les roles de chacun.

Comme toute solution puissante, Drupal nous propose plusieurs chemins pour arriver à notre fin. Nous allons découvrir dans ce billet deux méthodes permettant de créer un processus de publication très facilement tout en offrant des réglages très fins permettant de gérer qui peut faire quoi à quel moment du processus.

Bref comment donner le contrôle du contenu aux utilisateurs du site tout en sécurisant le processus de publication.

Workbench : une solution hiérarchique de gestion de contenu

Workbench est une solution qui adresse plus particulièrement la gestion de contenu au travers d'un processus éditorial de publication classique. Il permet de déléguer la gestion éditoriale aux responsables des sections d'un site Internet, et de contrôler les différentes étapes clés du processus de publication. Découvrons plus en détail cette solution.

La gestion des droits avec workbench

Gestion des droits avec workbench access

Une des fonctionnalités les plus puissantes fournies par workbench access porte sur la gestion des droits d'accès et de modification des contenus. Ces droits peuvent être attribués à des groupes (rôles) et/ou individuellement, et s'appuient sur un système hiérarchique (utilisation d'un menu ou d'un vocabulaire) appelé Section, proposant bien sûr un héritage des droits.

Ce système permet à une organisation de déléguer et décentraliser la gestion du contenu de son site internet en fonction de son organigramme, et de décider très simplement qui peut modifier quel contenu en fonction de son organisation et des roles attribués aux utilisateurs.

Les utilisateurs finaux disposent d'une transparence total en pouvant consulter depuis leur tableau de bord les différentes sections du site qui leur sont attribuées.

Les différents états du processus de publication

Workbench moderation permet de modifier et ajouter autant d'états que nécessaires au processus de publication. Les états fournis par défaut sont ceux classiques d'un processus éditorial : brouillon, proposé à la publication, publié. Les auteurs ont ainsi la possibilité de travailler directement sur le site en rédigeant leur brouillon, sans que ceux soient visibles par d'autres. Ils disposent d'un onglet leur permettant de retrouver très facilement leurs différents documents de travail.

Les gestionnaires (ou webmestre) d'un autre côté disposent dans leur tableau de bord d'un onglet répertoriant tous les contenus qui sont proposés à la publication et/ou nécessitent une action de leur part.

Il est possible bien sûr de moduler tant que de besoin les différents états nécessaires au processus, et de leur associer un onglet correspondant dans le tableau de bord des utilisateurs finaux.

Configuration de workbench moderation

Le système de permission hiérarchique vu plus haut s'accompagne d'une gestion des différentes transitions possibles d'un état à un autre. Qui peut passer un contenu d'un état brouillon à l'état proposé à la publication ? Qui peut changer le statut d'un contenu pour le passer de proposé à la publication à publié ? Par défaut, les réglages de ces droits de transition sont valables pour tous les types de contenu du site. Mais il est possible de les affiner et de mettre en place des droits différents pour chaque type de contenu. Il est alors nécessaire d'activer cette option dans le fichier settings.php du site.

L'envoi de courriels est également paramétrable en fonction des transitions et des droits dont disposent les utilisateurs sur le contenu faisant l'objet de la transition.

Une interface de gestion repensée et une ergonomie sans faille

Tableau de bord My workbench

Workbench propose une interface de gestion des contenus unifiée permettant d'accéder immédiatement au contenu le plus pertinent en fonction de son profil : mes brouillons, les articles en attente de revue, etc. Avec cette interface, Workbench favorise une courbe d'apprentissage réduite pour la prise en main et la gestion de contenu d'un site web. Il fournit également un accès direct au profil de l'utilisateur et à son propre contenu, éléments que ceux-ci sont généralement plus enclins à rechercher.

widget workbench moderation

En fonction de leurs droits, les utilisateurs finaux disposent de petits outils facilitant grandement la gestion des transitions des contenus. Il est ainsi possible en un clic de modifier l'état d'un contenu sans devoir systématiquement modifier ce dernier pour changer son statut. Ces widgets permettent un gain de temps et un confort appréciable, ils offrent une visibilité immédiate sur le statut d'un contenu (section, statut) et peuvent être accessible depuis la consultation du contenu lui-même, ou encore depuis l'historique des versions.

Workbench : une solution opérationnelle immmédiatement

La suite de modules Workbench propose une solution tout de suite opérationnelle permettant de mettre en place un processus de publication professionnel complet. Ses points forts sont :

  • Une interface de gestion de contenu unifiée
  • Héritage hiérarchique des autorisations par «sections» (et non seulement en fonction des droits d'accès classiques proposés par Drupal comme les types de contenu)
  • Etats du contenu extensibles et gestion des transitions
  • Possibilité de modifier le contenu en direct sans publier immédiatement les modifications.
  • Possibilité de travailler sur une nouvelle version d'un contenu, alors que la première version est toujours en ligne.

La limite de la suite Workbench est qu'actuellement cette solution ne permet de gérer qu'un seul processus de publication. Imaginons que nous ayons besoin d'une solution nous permettant de mettre en place plusieurs processus parallèles, que ce soit de publication ou de signature par exemple.

Rentre en scène alors Workflow, une autre solution pour implémenter un processus de publication sur Drupal.

Workflow : une solution pour des processus multiples de gestion de contenu sous Drupal

Workflow est une solution de gestion de contenu plus ancienne que Workbench. Elle nécessite un peu plus de configuration pour retrouver le niveau des fonctionnalités offertes par la suite Workbench, sans toutefois pouvoir l'égaler en tout point, notamment sur l'héritage hiérarchique des droits par section. Mais ce que perd Workflow en fonctionnalités, il le convertit en potentiel infini !

L'architecture de Workflow a été récement retravaillé en profondeur pour proposer une nouvelle implémentation s'appuyant sur la Field API de Drupal. Qu'est-ce à dire ? Plutôt que de proposer un processus de publication architecturé autour des contenus de Drupal (la première version de workflow 7.x-1.x avec workflow node), il propose de mettre en place un processus de publication intégré dans les entités de Drupal, au moyen d'un nouveau type de champ. Les possibilités deviennent alors infinies. Il est possible de créer autant de processus de publication (états différents, transitions différentes, droits différents, etc) que nécessaire, et d'associer ces processus aux contenus du site au moyen de la field API. Tout ceci en quelques clics.

L'avantage est double. On peut mettre en place des processus multiples (signature, publication, contrôle) sur le même type de contenu. Ou encore créer des processus de publication différents selon les contenus.  Cette souplesse est décuplée par la Field API et tout l'écosystème contribué : le workflow étant un champ, comme les autres, il est possible d'interagir avec celui-ci sans limite : Views, Rules, Field Permissions, etc. Autre point non négligeable : du fait de l'utilisation des champs, il est possible d'implémenter un processus sur n'importe quelle entité de Drupal : les utilisateurs, la taxonomie, les produits de Drupal commerce, etc. et pas seulement les contenus.

Découvrons plus en détail cette solution.

La création de processus multiples et la gestion des états et transitions possibles

Worklow states

Avant de pouvoir associer un ou plusieurs processus de publication aux entités de Drupal, il est nécessaire de créer au préalable ceux-ci. A l'instar de Workbench, nous pouvons créer autant d'états que nécessaires, définir les différentes transitions possibles d'un état à un autre et donner les droits permettant d'effectuer ces transitions.

Workflow transitions

La gestion des droits avec Workflow Access

Workflow access

Workflow Access permet de modifier les différents droits possibles (voir, modifier, supprimer) dynamiquement en fonction de l'état des contenus. Cette gestion de droits s'applique globalement au contenu (ou l'entité) géré par ce processus, autrement dit le contenu sur lequel le champ implémentant ce processus aura été installé et configuré. Pour comparer avec la suite Workbench, Worklow ne propose pas ici de solution toute faite pour affecter des droits aux utilisateurs finaux en fonction de leur roles et/ou de leurs sections. Mais cette fonctionnalité peut être rapidement reconstituée avec un subtil mélange de Worklow, Rules, Content Access et Views.

Des processus multiples ou parallèles avec Workflow

Pour implémenter un ou plusieurs processus sur une entité, il suffit alors d'implémenter sur celle-ci un champ de type workflow. Lors de la configuration de ce champ, nous pouvons alors sélectionner quel processus sera utilisé et plusieurs options pourront être activées / configurées :

  • la possibilité de planifier une transition
  • la possibilité d'associer un commentaire à chaque transition (et le rendre obligatoire ou non)
  • la possibilité de choisir le widget utilisé pour effectuer les transitions d'un état à un autre : liste déroulante, bouton radio, bouton action
  • L'activation d'un historique des transitions pour l'entité et le réglage des droits d'accès à cet historique

Workflow widget

Enfin, et non des moindres, il est possible d'activer et d'afficher le widget permettant d'effectuer les transitions d'un état à un autre lors de la consultation de l'entité. Ainsi, on peut distinguer les utilisateurs finaux pouvant modifier le statut d'un contenu des utilisateurs finaux pouvant le modifier. Comme pour Workbench, ces widgets permettent un gain de temps et un confort appréciable, et ils offrent une visibilité immédiate sur le statut d'un contenu. Il est ainsi possible de concevoir un processus de publication sur mesure en fonction des différents profils d'utilisateur et de leur offrir une ergonomie et une expérience utilisateur optimale.

Un tableau de bord sur mesure avec Workflow

Workflow historiqueWorkflow propose également un tableau de bord permettant d'obtenir en quelques clics un aperçu des contenus en fonction de leur statut. Moins riche immédiatement que celui de Workbench, ce tableau de bord conçu avec Views peut être adpaté / modifié très aisement pour correspondre aux différents processus implémentés et à l'organisation mise en place.

Workflow ou Workbench pour mon processus de publication ?

Comme toujours il n'existe pas de solution idéale toute faite. Avec les rapides aperçus que nous avons fait sur ces solutions, nous avons pu voir que chacune avait ses propres forces. A vous de voir laquelle correspond le mieux à vos besoins et votre organisation. Il n'est pas impossible non plus de mixer ces deux solutions pour tirer le meillleur de chacune d'elles. Cette implémentation devra être réalisée toutefois avec précaution car ces deux solutions manipulent les droits d'accès aux contenus et une mauvaise architecture peut conduire à une impasse, ou une incompatibilité des droits implémentés.

N'hésitez pas à consulter un prestataire expert Drupal le cas échéant qui pourra vous conseiller sur la meilleure architecture possible selon vos besoins.

Commentaires

Soumis par BOLa OUSSOU GOLI (non vérifié) le 11/12/2016 à 11:56 - Permalien

Bonjour
tres interessante comparaison..
A la date d'aujourd'hui je trouve les deux modules intéressants mais Workbench puissant avec sa fonctionnalité d'entité introduite en 2014 et encore améliorée aujourd'hui. De plus elle semble quand meme convenir a ce j'appelle s'adapter à l'accroissement des potentialités face à la panoplie de besoin.

Je dirait que workbench, plus basé sur les nodes , est juste une façon de rendre plus simple le difficile a mettre en place avec workflow.

Je felicite énormément les développeurs pour le travaille qu'ils abattent mais pense que ce serait parfois mieux d'avoir des modules faisant les memes choses et s'il il y a une idée de simplifier les choses pour un module semblant trop compliquée que cela fasse l'objet d'une fusion "sectorisée" où l'amélioration ou simplification serait une fonctionnalité ou un sous-modules

Qu'en penses vous?

Soumis par Morgane (non vérifié) le 25/07/2017 à 17:01 - Permalien

Bonjour,

L'article est super intéressant et m'a permis de mettre en place le système d'état d'articles et de transition.
Pour aller plus loin, il est dommage de constater que Worbench ne propose pas (encore?) de définir une date de publication et de "dépublication".

Scheduler fait ce job à merveille sauf qu'après plusieurs recherches, je me suis rendue compte qu'il n'était absolument pas compatible avec Worbench moderation.
Existe-t-il un moyen de contourner cette "impossibilité" ou une autre solution?

Merci :)

Soumis par Didier Beux (non vérifié) le 25/05/2020 à 15:42 - Permalien

Bonjour et merci pour ce composant très bien fait et qui convient parfaitement à notre organisation.
Le problème que j'aimerai soulever ici est le problème de dé-publication globale. Il faut savoir que, par besoin, le workflow a été paramétré comme suit : Brouillon -> À valider, publié -> archivé. L'état de modération Archivé à été choisi pour pouvoir voir encore le contenu une fois dé-publié. il serait possible de reprendre le mème contenu comme brouillon, le modifier et le republier. Dans ce cas de figure je ne trouve pas de solution simple pour que l'action globale dé-publier un contenu effectue ce changement d'état selon le workflow défini. Y aurait-il un module du workbench qui permette de passer globalement l'état publié à archivé simplement en action globale ? C'est le seul manque que je trouve à ce module.

Ajouter un commentaire