3 – 30 mars 2004 – page 10
3 – 30 mars 2004 – page 11
Schéma de principe
Une première remarque, le choix de l’Open Source pour
l’ensemble des concepts et outils visant à résoudre les problè-
mes de production de contenu des sites Web reste toujours le
bon. La diversité et la richesse des frameworks Open Source
écrits en Java/PHP/Python est la seule approche qui couvre
l’ensemble des fonctionnalités essentielles d’un système de
gestion de contenu qui sont:
❚ la gestion des utilisateurs et de leurs droits;
❚ la création et l’édition de contenu;
❚ le stockage du contenu;
❚ les métadonnées (ensemble de propriétés décrivant le
contenu);
❚ la gestion de la qualité de l’information (workow);
❚ l’indexation et la recherche;
❚ la gestion de l’interface utilisateur;
❚ la syndication (regroupement d’informations provenant
de différentes sources).
Une deuxième, pour compléter la première. Tous ces
outils ou solutions sont-ils en concurrence directe? Oui
et non. Oui, car tous font de la gestion et production de
contenu. Non, si vous prenez Jahia, c’est un CMS qui cible
des portails d’information et non celui de communautés en
ligne. Zope c’est l’inverse. Au milieu, je vous l’accorde c’est
assez confus.
Une troisième, il est impossible dans le cadre d’un article
de couvrir tous les aspects d’un framework tel que Python/
Zope/CMF, nous irons à l’essentiel avec tout ce que cette
démarche sous-entend comme frustration pour le lecteur
comme pour l’auteur.
La gestion de contenu avec ZOPE et le
CMF
Architecture technique vue d’avion
Commençons par le commencement. Qu’est-ce que
Zope? En une seule phrase, comme l’indiquent O. Deck-
myn et P-J. Grizel dans leur livre Zope (2e édition): Zope
est un environnement de publications d’objets sur le Web. Zope
à l’image du langage de programmation Python sur lequel
il est bâti à 90% est orienté objet. Insistons, avec Zope, on
ne publie pas des pages Web mais des objets pouvant être
assemblés automatiquement à partir de composants dont le
comportement, les données et l’apparence sont congurables
par le concepteur du site. La persistance de ces objets est as-
surée par une base objet, la ZODB (Zope Object Data Base).
L’ensemble est stocké dans un chier data.fs. Ce chier
contient non seulement les versions des objets utilisés, mais
un historique des modications apportées, ce qui permet
de revenir à un état précédent. La base ZODB est transac-
tionnelle, ce qui signie que tout traitement entamé est soit
terminé avec succès soit annulé. Chaque objet possède un
contexte qui lui est propre. Les objets Zope les plus courants
appartiennent aux classes Folder, Document et Method. Ils
sont à prendre dans le cadre de la programmation objet. Un
objet est déni par:
❚ son état (l’ensemble des valeurs de ses attributs);
❚ son comportement (l’ensemble des méthodes qui lui sont
applicables).
La plupart des objets Zope possèdent une méthode qui
permet leur représentation en HTML. Pour un Folder, cette
méthode afche un document particulier à l’intérieur du Fol-
der. La publication de ces objets est gérée par un composant
de Zope nommé Zpublisher.
La g. 1 montre l’architecture de la plate-forme Zope.
Fig. 1
Les requêtes HTTP parviennent à Zserver (un compo-
sant qui comme son nom l’indique joue le rôle de serveur
Web; Zope peut aussi être placé derrière un serveur classique
Apache). Elles sont transformées en requêtes interprétables
par Zpublisher. Comment invoquer des méthodes d’objets
sur le serveur Zope?
Avec Apache, l’URL localhost/web/test/mapage.html re-
vient à accèder au chier mapage.html situé dans le répertoire
DocumentRoot/web/test/ de la machine localhost.
Sous Zope: localhost:8080/web/test/mapage.html signie
publier l’objet mapage.html contenu dans l’objet test contenu
dans l’objet web contenu dans la racine de la base ZODB.
Site collaboratif sous ZOPE/CMF
Un site collaboratif est un site sur lequel des internautes
fournissent le contenu et le mettent en valeur pour d’autres
à travers 4 grandes étapes:
❚ Identication: un membre s’identie et accède à un espace
privé au sein du site.
❚ Composition: le membre-rédacteur rédige un article, une
brève. Ce document restera privé tant que son auteur ne
déclarera pas explicitement qu’il veut le partager avec la
communauté.
❚ Modération et validation: le rédacteur décide de publier
son contenu. Suivant le type de données et les règles en
vigueur sur le site, l’information est soit directement mise
en ligne, soit sujette à l’approbation d’un modérateur ou
relecteur.
❚ Publication: le contenu publié est classé et indexé en
fonction de son type, du workow associé et de ses mé-
tadonnées.
Plone, plate-forme Open Source de développement de sites communautaires
suite de la première page