Date de publication: le mardi 29 novembre 2011 à 14h32
Dernière modification: par Pascal BOYER le mardi 29 novembre 2011 à 17h15
« Article précédent: eZ Publish : un workflow pour plusieurs événements
» Article suivant: eZ Publish : le système de toolbar - créer un outil
Table des matières
- Cacher un article pour le retirer du site public
- Publier à posteriori (workflow + trigger)
- Dépublier (workflow + trigger)
eZ Publish 4.2
Cet article présente la marche à suivre pour la mise en œuvre du système de publication et dépublication automatique d'articles (ou autres) que propose eZ Publish.Ce système permet également, comme nous allons le voir, de cacher un objet afin qu'il ne soit plus affiché sur le site public.
I - eZ Publish 4.2 - Cacher un article
Pour que cette action se déroule correctement, il est nécessaire de définir correctement la classe d'objet des objets auxquels on souhaite appliquer cette action.Par ailleurs, aucun workflow particulier ne devant être défini, l'action de cacher des objets à postériori est d'une mise en œuvre aisée et rapide.
Le datatype Date et heure
La classe d'objet doit donc contenir un attribut basé sur le datatype Date et heure :
Fig. 1 : Datatype Date et heure - Identifiant du datatype: date_cacher
Une fois la classe d'objet enregistrée, il reste à configurer correctement le fichier de surcharge content.ini.append.php du siteaccess public qui devra contenir la section [HideSettings] suivante:
[HideSettings] RootNodeList[]=2 HideDateAttributeList[article_mainpage]=hide_date HideDateAttributeList[article]=date_cacher
Comme le montre le code ci-dessus, il est nécessaire de définir et d'associer:
- l'identifiant de la classe d'objet ( article_mainpage et article dans le code ci-dessus)
- à l'identifiant de l'attribut Date et heure de la classe d'objet considérée ( hide_date et date_cacher dans le code ci-dessus)
Le script runcronbjobs.php
Après avoir créé un objet et défini la date et l'heure à laquelle celui-ci devra être caché, il reste à exécuter le script runcronjobs.php:
php runcronjobs.php -s test
Using siteaccess test for cronjob Running cronjobs/unpublish.php Running cronjobs/rssimport.php Running cronjobs/indexcontent.php Starting processing pending search engine modifications Done Running cronjobs/hide.php Running cronjobs/subtreeexpirycleanup.php Running cronjobs/internal_drafts_cleanup.php Cleaning up internal drafts... Cleaned up 0 internal drafts
L'option -s est suivie du nom du siteaccess pour lequel on souhaite que s'applique l'action exécutée par le script.Il est entendu que le script runcronjobs.php sera exécuté à une date et une heure postérieure à la date et heure à laquelle l'article doit être publié.
Résultat
L'exécution de la commande ci-dessus a pour effet de cacher l'article (ou les articles). Il n'est donc plus visible sur le site public et son nom est grisé dans l'arborescence de l'interface d'administration.
Commentaires














