Plone, plate-forme Open Source de développement de sites

 3 – 30 mars 2004 – page 1
suite en page 11
plate-forme Open Source
de développement de
sites communautaires
Francis.Lapique@ep.ch, Domaine IT
Introduction
Si ces derniers temps nous avons
connu un séisme de force 5, celui qui
se prépare dans le domaine des systèmes
de gestion de contenu (ou CMS) Open
Source s’annonce tout aussi fort. Pour
preuve:
les publications du Domaine IT
qui sont sous SPIP (Système de
Publication Pour Internet);
nos quelques 160 sites éditoriaux
actuellement sous Jahia v.3 vont
progressivement passer sous Jahia
v.4 qui va apporter la gestion multi-
lingue et un circuit de validation ou
workow des contenus éditoriaux;
le site actualites exploité par le Ser-
vice de presse & information utilise
php-Nuke;
et un nouveau candidat pour les
sites communautaires et bases de
connaissances qui fait beaucoup
parler de lui, Zope/CMF, ou plus
exactement Python/Zope/CMF/
Plone qui fait l’objet de cet article.
Pour les lecteurs qui désireraient
très rapidement avoir une ie du
produit PLONE, je les encourage à
visualiser les vidéos disponibles sur le
site www.plone.fr.
Sommaire
FI 3/2004
1 Plone – plate-forme Open
Source de développement de
sites communautaires
Francis Lapique
2 DIT-info
◗Redhat@ep
◗Nouveaux collaborateurs au DIT
3 Un monde parfait adldap ou la
synchronisation entre annuaires
LDAP pour Active Directory
Laurent Kling
16 Concours de sécurité informati-
que
16 Séminaire FEMLAB
17 Impression numérique couleur
directement depuis votre poste
de travail
Roland Chabloz
21 Persistance des objets Java avec
Hibernate
Laurent Boatto
23 Les nouveautés d’Outlook 2003
Jacqueline Frey
24 Programme des cours
27 Un roboceptionniste à l’accueil
du DIT
Dora Derauze
28 Attention virus!
Christian Raemy
28 Concours de la meilleure nou-
velle
 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 (workow);
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 congurables
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 modications apportées, ce qui permet
de revenir à un état précédent. La base ZODB est transac-
tionnelle, ce qui signie 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 afche 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 signie
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:
Identication: un membre s’identie 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 workow associé et de ses mé-
tadonnées.
Plone, plate-forme Open Source de développement de sites communautaires
suite de la première page
 3 – 30 mars 2004 – page 12
 3 – 30 mars 2004 – page 13
Le CMF (Content Management Framework) offre un
ensemble de services de base pour la gestion de contenu
comme la gestion:
d’un espace personnel: le contenu n’est pas situé à l’en-
droit où il est afché;
du processus de création de contenu par les membres:
dans son espace privé le membre ajoute du contenu en
selectionnant le type de contenu;
du workow de publications: le concepteur du site peut
déterminer tous les états possibles, les transitions, les
acteurs;
de l’indexation et du moteur de recherche: tous les con-
tenus créés sont indexés dans un moteur de recherche
intégré à Zope;
de l’interface utilisateur: séparation du contenu, de la
logique et de la présentation sur un concept de Skins;
des métadonnées: on peut associer à tous les contenus du
site un ensemble de métadonnées dénies par le standard
Dublin Core (titre, description, sujet,...);
des versions: chaque rédacteur peut revenir à une version
précédente de son contenu;
de la syndication: le CMF permet d’exposer n’importe
quel contenu de votre site sous forme RSS XML.
Et Plone dans tout cela? C’est l’outil de gestion de con-
tenu (CMS) construit au dessus du CMF. C’est la simplicité
d’utilisation et la robustesse de Plone qui ont permis à Zope
d’avoir le succès qu’il a actuellement. Le nombre de sites
Plone dans le monde ne cesse de croître.
Installation et conguration
PYTHON/ZOPE
L’installation de Zope est très simple et ne doit prendre
que quelques minutes (ça fait rêver quand une suite de
produits équivalents d’un grand éditeur va vous prendre au
bas mot 8 à 10 jours et sans garantie de résultat!). A l’heure
actuelle la version 2.7 est ofciellement sortie, vous pouvez
télécharger sa version binaire pour Windows (.exe), Linux
(.rpm ou .tar.gz) et Mac OS X à l’adresse: www.zope.org/
Products/Zope. Démarrez Zope et vériez son bon fonction-
nement en vous connectant à l’url: localhost:8080 ou dans
son environnement de développement localhost:8080/ma-
nage. Vous trouverez sur le site Zope The Zope Book (2.6
Edition) qui fait environ 500 pages en format PDF. Vous
pouvez également vous procurer en librairie le livre Zope
2ème édition déjà cité, très bon ouvrage qui couvre l’essentiel
de Zope, du langage Python et donne des exemples de mise
en oeuvre trés didactiques.
CMF
CMF est une extension de Zope livrée sous forme de
Produits. Pour l’heure vous trouverez une archive de sa ver-
sion 1.4.2 à l’adresse: cmf.zope.org/download. Cette archive
comprend les sous-répertoires: CMFCore, CMFDefault
CMFTopic, CMFCalendar et DCWorkow. Copiez tous
ces répertoires sous celui de Zope: la_où_vous avez_zope/lib/
python/Products/. Redémarrez Zope et vériez au moyen du
menu Control_Panel->Product Management de l’interface
de management de Zope (localhost:8080/manage ou ZMI)
la présence de l’infrastructure CMF.
Quelques mots sur ces composants CMF:
CMFCore fournit l’infrastructure de base du fra-
mework
CMFDefault fournit une implémentation d’un site de
type portail simple
CMFTopic permet de gérer des objets de type Topic qui
encapsulent des requêtes prédénies par l’utilisateur vers
le moteur d’indexation
CMFCalendar permet de gérer des objets de type Event
et de les afcher au sein du portail via un calendrier
DCWorkow comme son nom l’indique est une solu-
tion de mise en œuvre de workow pour les applications
CMF.
PLONE
Dernière étape: l’installation de Plone. Téléchargez le pro-
duit dans sa version 2.0 à l’adresse: plone.org/downloads/.
Le produit Plone, couche au-dessus de CMF, fournit un
applicatif utilisable Out of the Box par l’utilisateur nal. At-
tention pour une utilisation du support des langues vous avez
besoin des produits: i18n, Localizer et TranslationService. Si
vous rencontrez des problèmes avec l’internationalisation de
Plone, n’installez pas le produit TranslationService. Redémar-
rez Zope pour vérier que tout se passe bien.
Présentation des composants et service
d’un site PLONE
La gestion d’un site Plone a deux aspects:
technique à travers l’interface localhost:8080/monsite/
managemonsite est l’id (voir plus bas) du site
gestion de contenu avec comme interface localhost:
8080/monsite
Créer un site: PLONE
Rien de plus simple, lancez l’interface de management
Zope, allez dans le menu déroulant à droite, choisissez Plone
Site. Vous obtenez un formulaire.
Plone, plate-forme Open Source de développement de sites communautaires
 3 – 30 mars 2004 – page 12
 3 – 30 mars 2004 – page 13
Ce formulaire vous invite à donner
l’identiant de l’objet, pour nous ce sera
monsite, le titre donné au site, l’endroit de
stockage de la base des utilisateurs du site
(dans l’arborescence de notre site ou dans le
dossier acl_users à la racine du site Zope) et
une description sommaire.
Cliquez le bouton Add et vous êtes auto-
matiquement dirigé sur la page d’accueil. Le
site est prêt à l’emploi. Pour un paramétrage
avancé cliquez le lien plone setup.
Vue technique: services du site
En ouvrant notre site en mode manage
sous un compte administrateur vous pouvez
voir le contenu de l’objet représentant le site
Plone. Vous y trouverez des composants d’aide
à la mise en œuvre du site:
MailHost pour envoyer des e-mails;
le dossier Members. Chaque membre va se
voir attribuer un dossier, plus exactement
un conteneur de type Portal Folder ou
Plone Folder qui lui sera propre;
acl_users objet User Folder contenant les
utilisateurs déclarés avec leur rôle;
l’objet content_type_registery, dénition
de la correspondance entre les types MIME
et les types de contenu;
l’objet cookie_authentication
pour congurer les paramètres
d’authentication dans le navigateur de
l’utilisateur;
et des composants d’infrastructure de ser-
vices:
portal_catalog pour l’emploi du moteur
d’indexation
portal_actions présente les actions
disponibles pour un utilisateur sur un
document ou un dossier donné
portal_discussion permet de congurer la
possibilité de discuter chaque document
du portail (mini-forums)
portal_membership pour gérer le méca-
nisme d’authentication des membres
portal_memberdata permet de dénir les
propriétés que l’on souhaite conserver
pour chaque utilisateur
portal_metadata fournit l’interface de
gestion des métadonnées
portal_properties pour y dénir des ches
de propriétés
portal_skins fournit les services de
l’interface graphique du site. Un/une
skin est un ensemble de mises en page
graphiques pour respecter la sacro-sainte
séparation contenu/design/logique que
TOUT gestionnaire de contenu se doit
de respecter.
Plone, plate-forme Open Source de développement de sites communautaires
 3 – 30 mars 2004 – page 14
 3 – 30 mars 2004 – page 15
portal_types, vous dénissez pour chaque type de contenu, les actions
par lesquelles l’utilisateur interagit avec le contenu en fonction de ses
droits.
portal_workow aide à dénir le cycle de vie du contenu
portal_syndication gère la syndication du contenu à travers le site
portal_undo permet l’annulation des actions effectuées sur le contenu
portal_form permet de gérer les formulaires d’édition associés à vos types
de contenu.
portal__calendar permet la gestion de contenu de type Event, et l’accès
au contenu du site sur des critères de date
Vue utilisateur
Sur la gure précédente, on distingue 4 parties:
1. l’en-tête
2. les côtés
3. la partie centrale
4. le pied de page
L’en-tête contient un logo, un petit
formulaire de recherche, et des onglets de
navigation. Les côtés contiennent plusieurs
boîtes à outils. A gauche, une boîte de navi-
gation représente une arborescence comme
dans un explorateur Windows. A droite, la
boîte des publications récentes et un calen-
drier qui indique les événements du mois en
cours et la date du jour encadrée d’un petit
rectangle rouge. Dans la partie centrale, le
contenu du document que vous visualisez.
En haut à droite quelques actions rapides:
envoyer le lien par e-mail, imprimer la page,
ajouter aux favoris.
Pour ajouter du contenu, cliquez my
folder dans la barre d’outils à côté d’admin.
Une liste déroulante propose tous les types de
contenus que vous avez le droit de rajouter.
Pour publier cliquez l’onglet state et choi-
sir publish. Suivant la règle du site, l’article est
publié directement ou soumis au modérateur.
La date d’activation permet de choisir la date
à partir de laquelle l’article sera visible des
autres utilisateurs. La date d’expiration per-
met quant à elle de retirer un article à partir
d’une certaine date. Il est possible d’autoriser
d’autres personnes à travailler sur vos docu-
ments en cliquant sur l’onglet sharing. Pour ce
faire, ajoutez un membre existant et attribuez
lui un rôle pour le document. Pour modier il
faut vérier que son état est autre que publish.
Vous pouvez modier l’ordre d’apparition de
vos articles.
Personnalisation
Vous avez deux types de personnalisation,
une personnalisation graphique (l’apparence
du site) et une autre fonctionnelle. Dans le
cadre de cet article nous ne pouvons qu’en
décrire les grandes lignes.
Personnalisation graphique
L’architecture du CMF met en œuvre un
mécanisme de Zope nommé skins qui permet
de modier l’apparence du site en choisissant
une méthode de présentation. Une skin est
composée de méthodes DTML ou ZPT et
de scripts Python. Le DTML est un langage
à balises pour modèle de document qui est en
train de s’effacer au prot de ZPT ou Zope
Page Template. Le grand enjeu de ZPT est
de proposer une approche pour améliorer la
collaboration entre les différents intervenants
techniques du projet et plus particulièrement
les graphistes et les développeurs. Le principe
général de ZPT repose sur une astuce simple:
les règles de transformation sont portées par
les attributs des balises HTML. Exemple: Si
la maquette graphique dispose de la phrase
suivante:
Plone, plate-forme Open Source de développement de sites communautaires
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !