Table des matières
- Cacher un article pour le retirer du site public
- Publier à posteriori (workflow + trigger)
- Dépublier (workflow + trigger)
eZ Publish : Publier à postériori (workflow + trigger)
Date de publication: le mardi 29 novembre 2011 à 14h32
Dernière modification: par Pascal BOYER le mardi 29 novembre 2011 à 17h43
eZ Publish 4.2 - Publier un article à posteriori
Ce paragraphe renvoie à la documentation officielle suivante: Cronjobs-Les-taches-cron
L'objectif visé ici consiste à créer un article, où tout autre objet, à un instant t alors que l'on souhaite qu'il ne soit effectivement publié sur le site que plus tard.
Il est donc impératif que l'article ne soit pas immédiatement publié lorsque, sa rédaction terminée, l'on clique sur le bouton « Envoyer pour publication».Pour que cette opération fonctionne, il va être nécessaire de définir un workflow puis de l'associer à un déclencheur (trigger).
La classe d'objet article et l'attribut Date et heure
En tout premier lieu, il faut ajouter un attribut Date et heure à la classe d'objet considérée:
Fig. 2 : Datatype Date et heure - Identifiant du datatype: publish _date
Cet attribut peut tout à fait venir en sus du datatype Date et heure servant à cacher l'objet défini au § I.
Création du workflow
Les figures 3 à 7 illustrent les 5 étapes de la création du workflow nommé, pour l'exemple, Publication différée:
Fig. 3 : Étape 1: sélectionner le groupe de workflow Standard.
Fig. 4 : Étape 2: Ajouter un nouveau processus de workflow
Fig. 5 : Étape 3: Définir le nom du workflow puis le type d'événement associé
Fig. 6 : Étape 4: l'objet de cette étape est de sélectionner le datatype Date et heure de la classe d'objet considérée.
Les étapes 2 à 5 doivent être répétées pour chaque classe d'objet possédant un datatype Date et heure destiné à définir une date de publication différée.
Fig. 7 : Étape 5: Résultat final.
Activer le déclencheur / trigger
Un workflow une fois défini, il faut l'associer à un déclencheur.
Fig. 8 : Toutes les étapes d'activation du déclencheur sont illustrées ci-dessus.
A présent, tout objet instancié à partir de la classe d'objet article (voir Fig. 6) sera automatiquement mis en attente dans:
Fig. 9 : Emplacement des objets en attente de publication
:
Les éléments en attentes ne peuvent être ni modifiés, ni supprimés, ni quoi que ce soit.
Le fichier cronjob.ini.append.php
Pour que les objets soient publiés, il faut s'assurer que le fichier de configuration settings/cronjob.ini contienne bien la ligne suivante:
32 [CronjobPart-frequent] 33 Scripts[]=notification.php 34 Scripts[]=workflow.php <== CETTE LIGNE
Ce qui est normalement le cas.
Dans le cas contraire, il suffit de créer une surcharge de ce fichier dans le siteaccess public du site.
Publier les articles
Pour cela il suffit de lancer la commande:
php runcronjobs.php -s test frequent
où:
- -s est suivie du nom du siteaccess public
- frequent représente le nom du suffixe de la section (voir ligne 32) sous laquelle est placé le script workflow.php
Commentaires














