Workflow Joomla! évolué avec Seblod 2/4

17 vues
12 janvier 2015
Cyril
workflows-joomla-part2

 

Principes généraux

Ce tutoriel sur le CCK SEBLOD vous guide pour créer un workflow de validation complet avec Joomla et SEBLOD.
Il s'agit d'un second billet qui détaille un exemple de réalisation de workflow et qui fait suite à un premier article qui listait les éléments de workflow rendus disponibles par le couple Joomla / Seblod.


Le principe ici est que les 'auteurs' ne peuvent que créer des contenus sans les publier ou les dé publier. Les gestionnaires ont tout contrôle sur les contenus, alors que les administrateurs ont tout contrôle sur le site global.

 

Le processus de ce workflow est donc le suivant: Principe workflow

Gestion des groupes et acls

On définit d'abord un workflow de validation avec les groupes d'utilisateurs suivants: groupes d'utilisateurs Joomla! pour workflow

 

 

 

 

 

On définit les ACL suivantes: ACLs Joomla! pour workflow

 

 

 

 

 

l'ACL SPECIAL (accès en back office) est défini comme suit: Acl special pour le workflow

 

 

 

 

 

 

 

l'ACL Gestionnaire est défini comme suit: Acl gestionnaire pour le workflow

 

 

 

 

Champs nécessaires pour le workflow

Pour chaque type de contenu on ajoute les champs suivants (penser à masquer certains champs et mettre la valeur par défaut de pulsar_test_acl à 1): 

liste des champs seblod pour un workflow evolué sous Joomla! 

fin des champs seblod pour un workflow evolué sous Joomla!
ATTENTION: tous les champs "Pulsar" doivent être créés avec le cadenas ouvert et stockés dans le dossier d'applications rapide pour pouvoir être utilisé dans tous les types de contenu.

Le nom et l'email de l'auteur sont stockés en live value (bouton 2) dans les champs pulsar_content_creator_name et pulsar_content_creator_email (en précisant les valeurs name et email correspondant). Ces deux champs sont stockés dans la table commune #cck_store_item_content (stockage standard /article mais en cadenas ouvert).

Au delà de l'étape de création de contenu, on est obligé d'utiliser un champ code pour récupérer le nom et l'email de l'utilisateur qui modifie le contenu car les plugins de live value (bouton [2]) ne fonctionnent qu'à la création du contenu. Ici on a besoin de récuperer ces infos qui peuvent être différentes à chaque édition du contenu (ce n'est pas forcément l'auteur initial qui modifie le contenu). Les deux champs pulsar_content_user_email et pulsar_content_user_name sont stockés dans la table commune #cck_store_item_content.

Le contenu du champ code 'avant stockage doit etre':

$user = JFactory::getUser();

$fields[pulsar_content_user_email]->value=$user->email;

$fields[pulsar_content_user_name]->value=$user->name;

$config["storages"]["#__cck_store_item_content"]["pulsar_content_user_email"]= $user->email;

$config["storages"]["#__cck_store_item_content"]["pulsar_content_user_name"]= $user->name;

 

Le champ Pulsar_test_acl doit etre defini comme cela:  

configuration du champ pulsar_acl pour le workflow

 

 On utilise ce champ pulsar_test_acl comme un 'flag' qui est filtré par les ACLs. Si on est admin ou gestionnaire, le champ est bien actif et donc vaut 1. Dans le cas contraire le champ n'est pas présent et un test dessus renverra 0. On ne pouvait pas juste mettre une ACL 'gestionnaire' sur le champ STATE car on désire juste masquer ce champ tout en forçant sa valeur à 0.  Dans le cas d'un auteur, le champ pulsar_test_acl n'est pas actif et donc n'est pas positionné à 1. Les ACLs Joomla! activent ou désactivent un champ et ne se contentent pas de la masquer. C'est pourtant un masquage des champs STATE et ACCESS qu'on souhaite ici dans le cas d'un auteur avec en même temps l'affectation d'une valeur (0). Il faut donc passer par un état conditionnel sur ces champs.


Les accès sur certains champs doivent être positionnés: 

Accès sur les champs du workflow


L'état et l'accès du contenu ne doivent pas pouvoir être modifiés par les auteurs. On attache donc un état conditionnel sur chacun d'eux: 

état conditionnel sur les champs state et access du workflow


On positionne d'abord par défaut l’état de tous les contenus à DEPUBLIE:

état mis à 'dépublié' pour le workflow

Puis on n'affiche ces 2 champs Article State et Article Access que pour les niveaux 'gestionnaire' et au dessus (si pulsar_test_acl est bien positionné à 1): 

champ conditionnel sur l'état du contenu

Emails de notification

Notification à la création

On crée autant de champs mails qu'il peut y avoir de notifications. On configure ainsi le mail de notification pour la création de contenu (champ pulsar_content_creation_notif):

Configuration du champs email de notification

 Fin de la  configuration du champs email de notification
Notez que le mail n'est envoyé qu'à la soumission (création) du contenu.

Le contenu du message est: Avec la dernière version du champ email advanced on peut aussi ajouter un lien vers le back office du contenu à valider avec les lignes suivantes pour le corps du message:

ATTENTION il faut désactiver JCE (ou tout éditeur WYSIWYG) et activer l'éditeur non WYSIWYG de Joomla le temps d'écrire ce code!

Un nouveau contenu de type $cck->getValue('cck'); dont le nom est #art_title# a été créé sur le site web par #pulsar_content_creator_name#!

Veuillez vous connecter sur le back office pour le vérifier et le valider.

Merci

 

Notification à la modification avant validation

Quand un auteur modifie le contenu avant validation un email de notification est à nouveau renvoyé aux gestionnaires avec le champ pulsar_content_edition_notif.

C'est presque le même champ que pour la notification à la création mais cette fois il faut configurer le champ de telle sorte qu'il n'envoie le mail qu'à la modification du contenu.

le corps du message est aussi un peu modifié:

 Le contenu de type $cck->getValue('cck'); dont le nom est #art_title# a été modifié sur le site web par #pulsar_content_user_name#!

 Veuillez vous connecter sur le back office pour le vérifier et le valider.

 Voir le contenu



Merci

Notification à la validation

Cette fois on envoie un mail à l'auteur originel du contenu. Ce mail ne doit être envoyé qu'une seule fois quand le champ ARTICLE STATE vaut 1 et en s'assurant que le mail n'est pas déjà parti. C'est pour cette raison qu'on utilise un état conditionnel qui va activer et préremplir le champ seulement sur ces deux conditions:

Etat conditionnel sur le champ email de notification
Et le corps du message est cette fois:

Votre contenu de type $cck->getValue('cck'); dont le nom est #art_title# a été validé sur le site web par #pulsar_content_user_name#!

Merci

 

Dans notre prochain billet nous montrerons comment dans notre solution de GED Open Source FlexiGED nous permettons la construction très simplifiée de formulaires en ligne en vue frontale, sans passer par le back office, et selon un choix de workflows prédéfinis.

 

Pulsar au JoomlaDay Israel 2016
E-commerce avec Seblod
com_search joomla 2.5 recherche sans accents
Sommaire automatique pour Joomla
Pulsar présente le job board du nouveau site web Dynamique Emploi
Projets multi langues et multi sites avec Seblod
CMS Day: Joomla pour les projets du secteur public
Soirée CMS open-source en PHP
Pulsar présente JOOMLA à AGORA CMS
Indiegogo: contrôle de version avancé avec SEBLOD
Les solutions e-commerce avec Joomla!
Transformer un article en contenu SEBLOD
Quelles extensions choisir pour son site joomla ?
Joomla 4 : professionnalisation et performance
JoomlaDay 2015: Joomla! pour les applis pro
Pulsar présente son expertise SEBLOD au JoomlaDay 2013
Pulsar et Joomla pour les sites évolués au JoomlaDay 2014
Super BreadCrumb for Joomla 1.5 1.6 & 1.7
Pulsar présente le CMS Joomla! au club STARINUX
Pourquoi nous avons ajouté WordPress à notre offre
Joomla! fête ses 10 ans!
Pulsar présente le projet pour la Sorbonne au JoomlaDay!
Sites multi langues mobiles avec Joomla et Seblod
Joomla et les CCK
Pulsar primé pour le site de la Sorbonne
Personnalisation du backoffice de Joomla!
Workflows évolués pour Joomla! avec Seblod 1/4
3 nouvelles extensions Joomla! de Pulsar dans la JED
Correctif de Pulsar dans le routeur de Joomla
Ajouter Cufon à votre site Joomla!:
l'AFUJ exposant au salon Open Source Summit 2015
Pulsar, sponsor OR du JoomlaDay 2017
Astuce: suppression des éléments Seblod
Joomla! meilleur CMS PHP Open Source
Import shipping pour hikashop
SOBI Pro: le menu principal ne s'affiche pas
Pulsar sponsor OR du JoomlaBusiness 2015
Elections 2016 ... le CMS Joomla! encore
Plugin merge css/js pour Joomla
JCEmediabox et css js compress
Ajouter une icône d'édition dans une liste SEBLOD
Fenêtre coulissante avec Joomla et Seblod
Workflow et formulaires faciles avec Joomla! et Seblod 3/4
Comparaison des CCKs pour Joomla!
Les avantages de Joomla! face à Drupal
Pulsar gagne l'appel d'offre de la Sorbonne
Developpements pour la Bibliotheque Mazarine
Une agence web Joomla! au Drupagora
Comprendre les droits et niveaux d'accès de Joomla!
Nouveau site de Pulsar avec Seblod!
L'agence Pulsar sponsorise le JoomlaDay 2015
Advanced module manager et page d'accueil
Astuces PHP lazy load sous joomla seblod warp
Les solutions multi sites avec Joomla!
Pulsar au JoomlaDay 2014: Chaine de production
Entrées grisées avec la mention [extrait] dans DOCMAN
Un nouveau routeur pour Joomla!
JoomlaDay 2015: Pulsar y était!
Workflows généralisés avec Joomla! et Seblod (partie 4)
Pulsar sponsor du Joomladay
Chargement Joomla avec Mootools de Google
Pulsar, le JoomlaDay et Israël
GED Open Source simple pour les PME
Multisites, multilangues et multidevices pour la SORBONNE
Comprendre le stockage des données avec SEBLOD
Joomla meilleur cms open source 2011
Joomla! présent au salon AGORA CMS 2016
Joomla! à nouveau élu meilleur CMS 2017
Gestion Electronique de Documents sur mesure
Plugin de cache Joomla : les images ne s'affichent pas
SEBLOD: supprimer un script à moindre coût
Ajouter le bouton DOCLINK avec Jevents et SobiPro
Les nouveautés de Joomla! 4
SEBLOD et J2store au JoomlaDay Israël 2017
Override joomla du template 'category' lié à un menu
Développement multi sites avec Joomla et Seblod
Paramètres hikashop des items de menu
sh404SEF: URLs n'apparaissent pas
Pulsar présente le JoomlaBusiness à l'AFUP
Monétisez votre workflow avec Joomla!
Critère de correspondance pour la recherche SEBLOD
Pulsar developpe la passerelle Joomla LUCENE SOLR
Pulsar forme au CCK SEBLOD pour Joomla!
Pulsar certifie ses formateurs Joomla!
Référencement naturel, cocons sémantiques et Joomla!
Chasse aux bugs des templates Warp
Job board intégré à votre site Joomla!
Edition front end avec Hikashop et Virtuemart
Extensions Joomla: accessibilité, menu vertical et réseaux sociaux
Virtuemart: flèches quantité ne fonctionnent pas
Optimisation et vitesse de votre site Joomla!