29-11-2011 : Remettre dans le débat politique les principes du Conseil National de la Résistance
29-01-2012 : Parce que nous sommes un peuple debout, agissons pour rester dignes et responsables !
Logo de mon site
Logo de mon site
Faire un don

Luxpopuli / eZ Publish / Configuration / eZ Publish : Publier à postériori / Dépublier / Cacher un article (workflow + trigger)





Right menu

Logo du site ez.no  Logo XHTML 1.O du W3C  Logo XHTML 1.O du W3C  Site francophone officiel de Firefox

eZ Publish : Publier à postériori / Dépublier / Cacher un article (workflow + trigger)

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

  1. Cacher un article pour le retirer du site public
  2. Publier à posteriori (workflow + trigger)
  3. 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 :

Créer un workflow pour publier / dépublier / cacher un article

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:

  1. l'identifiant de la classe d'objet ( article_mainpage et article dans le code ci-dessus)
  2. à 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