Publier en différé avec eZ Publish
On souhaite parfois préparer un contenu (article, blog post,...) en avance et le publier à une date ultérieure. eZ Publish peut le faire mais pour cela il faut mettre en place un workflow. Présentation et paramétrage de cette solution efficace.
Dans cet article, je présenterai le cas du paramétrage d'eZ Publish pour la publication différée d'un post (classe Blog post) sur un blog. Ce qui est démontré peut être étendu à tous les types de contenu eZ Publish (y compris vos propres classes) du moment qu'ils possèdent un attribut date de publication.
Etape 1 : Mettre en place un workflow
- Cliquer sur Administration
- Cliquer sur Workflow
- Cliquer sur le bouton "Nouveau groupe de workflow" ou sur le groupe Standard
- Cliquer sur Nouveau processus de workflow
- Saisir le nom (ici Publication blog post) (cf. image 1)
- Sélectionner Evenement / attendre jusqu'à dans la liste déroulante (cf. image 1)
- Sélectionner la classe concernée (ici blog post) puis cliquer sur le bouton Mettre à jour les attributs à coté (cf. image 2)
- Sélectionner l'attribut concerné (ici Publication date) puis cliquer sur le bouton Sélectionner l'attribut (cf. image 2)
- Cocher éventuellement la case Modifier les dates de publication des objets (cf. image 2)
A savoir: La dernière case à cocher (Modifier les dates de publication des objets) peut être importante quand vous souhaitez afficher la date de publication coté utilisateur. Si vous ne cochez pas cette case, la date du contenu affichée sera celle de la rédaction.
Etape 2 : Ajouter un déclencheur (trigger)
Une fois que vous avez paramétré votre workflow, vous devriez le voir apparaitre dans l'interface des déclencheurs.
- Cliquer sur Déclencheurs dans l'interface d'administration
- Dans la liste déroulante de content / publish / before vous devez voir votre workflow de l'étape 1 (ici publication blog post)
- Sélectionner votre workflow
- Cliquer sur appliquer les changements
Etape 3 : Paramétrer les tâches planifiées
Cette étape n'est pas très compliquée... ne vous inquiétez pas. Nous allons utiliser les paramétrages définis par défaut dans cronjob.ini
Rappel : si vous souhaitez affiner vos réglages de tâches planifiées, ne modifiez pas ce fichier mais utilisez plutôt une surcharge dans le siteaccess désiré.
On passe en mode ligne de commande pour tester l'execution du script runcronjobs.php :
- Aller à la racine de votre site
- Taper :
php runcrojobs.php -s votresiteaccess frequent
Si tout se passe correctement vous devez voir :
Running cronjob/workflow.php at :Checking for workflow processes....
Si vous n'avez pas d'erreurs lors de l'exécution, vous pouvez ajouter cette ligne de commande dans vos tâches planifiées (windows) ou dans la "crontab" (linux). Vous devez définir l'intervalle d'exécution. Tout dépend de votre rythme de publication (toutes les heures, une fois par jour...)
Etape 4 : ajouter un contenu et définir sa date de publication
Pour cela rien de plus simple:
- Ajouter un objet de contenu (ici blog post)
- Définir une date de publication ultérieure (Publication date)
- Envoyer pour publication
Vous n'avez plus qu'à attendre le jour et l'heure choisie et actualiser votre site.
Rappel : si vous désirez publier votre contenu de suite laissez la date par défaut dans le champ Publication date. Votre contenu sera directement disponible sur la partie publique.

posté sous