Plone : un système de gestion de contenu professionnel open source
Retour à la page de garde du documentPrésentation
Plone est un système de gestion de contenu, c'est-à-dire un outil de production de sites web dynamiques. Ce type de système permet de disposer rapidement d'un site Internet, d'un intranet, d'un extranet, d'une base documentaire, d'un espace de travail collaboratif ou, de manière générale, d'une application web.
Plone n'est pas conçu uniquement pour des utilisateurs informaticiens. Bien au contraire, il permet à chaque utilisateur une intervention selon son rôle et ses compétences : simple lecteur, rédacteur de contenu, validateur, administrateur, etc.
Parmi les points forts de Plone, citons :
- ses nombreuses fonctionnalités disponibles en standard ;
- ses interfaces intuitives qui permet de modifier et de publier du contenu ;
- son extensibilité grâce à sa structure modulaire et aux nombreux modules complémentaires existants de qualité, publiés sous des licences libres ;
- sa capacité à être utilisé comme base pour des applications web spécifiques (applications métier) ;
- sa robustesse, grâce à son socle technique basé sur Python et Zope.
Fonctionnement dès l'installation
Page d'accueil par défaut d'un site Plone
Contenus
Plone est fourni avec un ensemble de types de contenu de base, comprenant le document, l'actualité, l'événement, le fichier, l'image, le lien.
Les différents types de contenu standards et le type de contenu « Actualité »
Ces types de contenu aident l'utilisateur à saisir et structurer simplement l'information. Grâce aux produits externes (add-ons), il est possible de facilement disposer d'autres types de contenu : vidéo, galerie photo, cartes google, formulaires, newsletter, sondages, etc. ...
Saisie d'un contenu
Apparence graphique
L'apparence graphique et la disposition des éléments dans Plone sont entièrement personnalisables. Une grande variété de produits prêts à l'emploi, appelés skins, proposent une mise en page personnalisée. Il est également possible de varier l'apparence graphique selon la rubrique du site ou selon le profil de l'utilisateur.
Exemples de personnalisation de sites Plone
La gestion de la personnalisation est simplifiée grâce à un système de profils XML qui sont facilement exportables d'un site à un autre. La disposition des éléments est également paramétrable au travers de vues graphiques.
Une apparence graphique modulable
L'apparence graphique et la disposition des éléments dans Plone sont entièrement personnalisables. Une grande variété de produits prêts à l'emploi, appelés skins, proposent une mise en page personnalisée. Il est également possible de varier l'apparence graphique selon la rubrique du site ou selon le profil de l'utilisateur.
Référencement naturel
Le référencement d'un site Plone est, en standard, hautement optimisé. En effet, Plone utilise les informations du document (titre, description, mots-clés, plan du site) pour optimiser la compréhension de l'information par les moteurs de recherche. De même, les URL de tous les éléments d'un site Plone sont générés automatiquement, à partir du titre, aboutissant ainsi à des URL lisibles et prises en compte par les moteurs de recherche (par exemple : http://www.pilotsystems.net/technologies/plone). De plus, le respect des standards améliore encore la visibilité. Tout ceci assure un excellent référencement naturel d'un site Plone dans les principaux moteurs de recherche (Google, Yahoo!, MSN, etc.).
Accessibilité et respect des standards
Les interfaces fournies par Plone sont compatibles avec les principaux standards du web, dont :
- les normes XHTML 1.0 et CSS 2, éditées par le W3C (World Wide Web Consortium : http://www.w3c.org), qui impliquent un rendu optimal sur les navigateurs web qui respectent ces standards ;
- le deuxième niveau (AA) des recommandations sur l'accessibilité (Web Content Accessibility Guidelines : http://www.w3.org/TR/WAI-WEBCONTENT), également éditées par le W3C, qui déterminent un certain nombre de règles de bonnes conduite à tenir en vue de fournir un service optimal au nombre maximum d'utilisateurs ;
- les recommandations de la « Section 508 » (http://www.section508.gov), du numéro d'un amendement à une loi américaine à laquelle doivent se conformer les sites et applications web des agences fédérales américaines. Cette définit également un certain nombre de règles de bonne conduite à tenir en vue de fournir un service optimal au nombre maximum d'utilisateurs.
Ce respect des standards et des règles d'accessibilité permet à un site Plone d'être utilisable par le maximum d'utilisateurs (et notamment par les malvoyants et les aveugles via un navigateur web approprié).
Solution complète de gestion de l'information
Une des grandes forces de Plone est de constituer à la fois un outil extrêmement puissant et évolutif, et de se présenter à l'utilisateur final comme un système accessible et facile à prendre en main et à utiliser. Ainsi, des efforts ont été fournis dès le début par des spécialistes de l'utilisabilité, afin de proposer des interfaces homogènes et intuitives, traduites en plus de 30 langues.
Traduction d'un site Plone (Chinois, Anglais)
Suivant l'évolution des technologies web, Plone utilise la technologie AJAX permettant d'obtenir une interface souple et réactive.
Barre d'outils de Plone
Éditeur de texte graphique (WYSIWYG)
Plone utilise Kupu, un éditeur de texte intégré au navigateur qui offre une interface interactive similaire à celle des traitements de texte classiques (comme Microsoft Word ou OpenOffice.org), et des fonctionnalités avancées permettant notamment d'insérer des liens vers des pages, des fichiers, des images ou des animations Flash.
Exemple d'utilisation de Kupu, l'éditeur de texte intégré à Plone
De plus, Kupu permet de forcer le respect d'une charte graphique et produit un contenu conforme aux standards (cf. paragraphe « Accessibilité et respect des standards », plus bas). Le comportement de Kupu est paramétrable afin de pouvoir, par exemple, ajouter des styles ou contrôler le degré de liberté donné dans la création des contenus.
Moteur de recherche
Plone dispose d'un moteur de recherche full-text (plein texte) puissant et rapide qui permet de rechercher des mots dans tout contenu déposé sur un site Plone.
Moteur de recherche de Plone
Il est en outre finement paramétrable et propose des fonctionnalités évoluées comme la combinaison d'expressions. Un formulaire de recherche avancée peut également être utilisé pour rechercher les documents en combinant des critères précis : date de modification, auteur, etc. ...
Plone offre une intégration parfaite des documents PDF, Microsoft Office (Microsoft Word, Powerpoint, etc.) et OpenOffice.org. Ceux-ci sont en effet indexés comme tous les autres contenus du site. Ainsi, une recherche sur le site prend en compte le contenu de ces documents.
Circuit de publication (workflow)
Plone intègre un moteur de workflow basé sur les états, puissant et évolutif. Un exemple de ce type de workflow est un circuit de publication d'un document dans un site intranet ou Internet :
- Un contributeur du site rédige un document et le donne à valider à un responsable. Pendant qu'il rédige ce document, celui-ci n'est pas visible aux autres utilisateurs du site, afin que personne ne puisse prendre en compte des informations non définitives qui pourraient y être contenues.
- Le responsable, lorsqu'il se connecte au site, voit apparaître ce document dans une liste des éléments à valider. Il peut publier le document s'il le juge acceptable ou le rejeter (s'il ne correspond pas à la ligne éditoriale, par exemple, ou si, plus généralement, il doit être corrigé) pour que le membre le modifie.
La manipulation du workflow se fait de manière extrêmement intuitive pour les utilisateurs.
Utilisation des workflows et schéma d'un des workflows standards
De même, l'historique de la publication du document est conservée. La possibilité d'annoter chaque modification offre une opportunité supplémentaire de collaboration entre les différents intervenants.
Historique des actions effectuées sur un document
En standard, Plone fournit 4 workflows adaptés un site internet ou un intranet. Cependant, le moteur de workflow permet de définir des politiques de publication personnalisées simples ou complexes. Ainsi un workflow :
- permet de contrôler le niveau d'intervention des différents acteurs aux différents stades de la vie du document ;
- peut varier selon le type d'information traité ;
- offre la possibilité d'automatiser certains traitements.
À noter que Plone peut également intégrer un moteur de workflow basé sur les actions. Dans ce cas, on affecte des tâches à des utilisateurs. C'est une autre façon de voir les workflows, souvent utilisée pour décrire des processus industriels.
Gestion des versions
Plone intègre également un module de gestion des versions. Ce module permet de créer de nouvelles versions de chaque document, de revenir en arrière et d'avoir un aperçu des modifications effectuées entre deux versions.
De plus, ce module permet de créer une nouvelle version d'un élément et de repasser par le processus de validation (si un tel processus est configuré), tout en gardant l'ancienne version accessible au public, et ce jusqu'à la publication de la nouvelle version.
Des fonctionnalités inédites
Plone offre certaines fonctionnalités originales comme la création rapide de liens à la manière d'un wiki, la navigation par suivant/précédent sur les contenus d'un dossier et le mode diaporama.
Les dossier automatiques, ou collections, permettent de reprendre l'information présente sur le site avec une organisation complètement indépendante qui n'a de limite que l'imagination.
Reprenant l'ergonomie des rêgles de traitement automatique des messages, popularisées par les logiciels de messagerie, Plone propose de définir des règles permettant de déclencher des traitements à l'occurence de certains évènements dans des conditions définies. Il est ainsi possible d'envoyer un mail à un groupe de personne à chaque modification de certains documents, ou encore de déplacer des documents au moment de leur publication etc....
Plone propose également un système évolué de portlets, qui sont des « boîtes » (ou slots) présentant des données, statiques ou dynamiques, contextuelles ou non. Ce type de système permet ainsi d'afficher une liste de contenus à valider pour un utilisateur connecté, une liste des derniers contenus modifiés par les utilisateurs, un calendrier, etc. Ces portlets sont configurables selon le contexte et l'utilisateur.
Exemple d'utilisation des portlets (affichage des portlets, configuration de l'affichage des portlets sur le site)
En plus d'être accessible via un navigateur web, le contenu de Plone peut également être mis à jour via FTP ou WebDAV. Ce dernier est un protocole de communication basé sur HTTP, et implémenté en standard dans l'Explorateur de Microsoft Windows, le Finder de Mac OS X, ainsi que dans de nombreux logiciels dédiés. Il permet par exemple de copier du contenu de son ordinateur personnel vers le site, d'un simple glissé-déposé de la souris, comme s'il s'agissait d'un dossier classique de son ordinateur personnel. Cette technique est extrêmement apprécié lorsqu'il s'agit de transférer vers le site un grand nombre de fichiers ou images.
Politique de sécurité : utilisateurs, groupes et rôles
La politique de sécurité de Zope, sur laquelle se base Plone, permet de gérer finement les différents accès possibles à un site Plone. Ainsi, chaque action (par exemple « éditer un contenu » ou « modifier la présentation d'une page ») est associée à une permission. Puis, à chaque permission est associée une liste de rôles, suivant le contexte et l'état de workflow courant (ainsi un contributeur aura le droit de modifier un document privé - en cours d'écriture -, mais pas un document en cours de relecture).
D'autre part, on peut réunir les utilisateurs par groupes, ce qui permet de définir des structures (comparables à des services dans une administration ou une entreprise, par exemple « marketing », « recherche et développement », « communication », etc.). Puis, il est possible d'accorder des rôles à ces utilisateurs ou à ces groupes, leur permettant ainsi d'effectuer différentes actions. Cette gestion des utilisateurs est possible grâce à un ensemble d'interfaces homogènes et faciles à utiliser.
De même, Plone permet de créer des espaces de travail, réservés à un utilisateur ou à un groupe d'utilisateurs. On peut alors accorder à ceux-ci des droits particuliers dans ces espaces de travail (lecture, contribution, relecture, etc.). Un exemple classique d'utilisation est un intranet où l'on peut créer des groupes d'utilisateurs « communication » et « informatique », ainsi que leur espace de travail associé. Une configuration pourrait être de ne laisser que les membres du groupe « communication » accéder à son espace de travail (et la même chose pour le groupe « informatique » dans son propre espace), garantissant une séparation claire de l'accès aux informations. Une autre configuration pourrait être de donner un accès en lecture seule à tous les groupes d'utilisateurs dans l'espace de travail « communication », sauf pour le groupe d'utilisateurs « communication » qui pourrait y gérer du contenu (lecture, écriture, validation, suppression).
Partage d'un document entre plusieurs utilisateurs
Grâce à un produit externe régi par une licence également open source, il est possible d'interfacer un site Plone avec un annuaire compatible LDAP (comme OpenLDAP, Novell eDirectory ou Active Directory, ce dernier étant souvent utilisé dans les réseaux basés sur des produits Microsoft). Ainsi, toutes les informations sur les utilisateurs sont stockées dans une base centralisée, et le site Plone peut directement en disposer (informations personnelles comme l'adresse électronique ou le nom complet, mais aussi informations structurelles, comme l'appartenance à un service).
LinguaPlone, un outil d'internationalisation pour Plone
Descriptif
Plone est fourni en standard avec une interface traduite en plus de 25 langues (dont l'anglais, le français, l'allemand, l'espagnol, le chinois, l'italien, le néerlandais, etc.).
De plus, Plone peut être étendu avec le module LinguaPlone qui permet de stocker des contenus multilingues, quels qu'ils soient : documents, actualités, événements, types de contenu spécifiques, etc. Une fois un document saisi, il est possible de créer une traduction de cet élément, c'est-à-dire de créer un autre élément qui lui est lié par une relation spécifique. Lors de l'édition de cette traduction, le document original est affiché, afin de faciliter la saisie. Chaque traduction est indépendante et il est donc possible d'avoir des méta-données différentes entre chaque traduction : description, mots-clés, etc.
Exemple d'un site entièrement traduit en chinois : Objectis
Plone et LinguaPlone permet de gérer toutes les langues, y compris celles qui utilisent un alphabet non latin (chinois, coréen, russe, etc.) ou un sens d'écriture de droite à gauche (arabe, hébreu, etc.).
Exemple de liste des langues de traduction
Quelques avantages de LinguaPlone
- Totalement transparent : installez, c'est prêt.
- Chaque traduction est un élément indépendant et peut être soumis à un workflow différent.
- Vous pouvez activer le multilinguisme pour vos types de contenu sans changer leur comportement à l'extérieur de LinguaPlone.
- Même si vous désinstallez LinguaPlone après avoir ajouté du contenu multilingue, tout votre contenu restera intact et fonctionnera comme objets séparés. La seule fonctionnalité dépendante qui sera désactivée est la référence entre les objets. Elle est réactivée automatiquement à la réinstallation du produit. LinguaPlone n'est pas intrusif.
- LinguaPlone est entièrement intégré à ATContentTypes : les types de contenu de base de Plone sont traduisibles.
- LinguaPlone gère des champs indépendants de la langue (exemple: dates, nom propre, etc). Vous pouvez utiliser cette fonctionnalité pour les champs que vous voulez identiques entre les traductions.
- Utilise la notion de « version canonique, » pour des fonctionnalités de workflow intéressantes, comme l'invalidation de toutes les traductions d'un objet lorsque la version originale est modifiée.
Crédits
LinguaPlone a été développé par l'équipe de Plone Solutions, SSLL créée par Alexander Limi, l'un des fondateurs du projet Plone.
Au-delà du système de gestion de contenu
Basé sur Python, Zope et CMF (Content Management Framework), Plone tire profit de leur architecture modulaire et extensible. Il est ainsi possible d'ajouter de nouvelles fonctionnalités et même des modules complets à Plone. C'est d'ailleurs de cette façon que Pilot Systems procède lors de développements d'applications web basées sur Plone. Car, au-delà d'un simple système de gestion de contenu, Plone peut être utilisé comme générateur d'applications, c'est-à-dire comme base (framework) d'une application web totalement spécifique.
Un socle technique solide
Plone repose sur Zope, un serveur d'applications écrit en Python et en C, c'est-à-dire une plate-forme qui fournit un ensemble de services permettant de réaliser des applications robustes : accessibilité web (application accessible avec un simple navigateur web), persistance des données, transactions, gestion de la sécurité, architecture MVC (modèle-vue-contrôleur), etc.
Zope est reconnu pour sa fiabilité, sa modularité et sa robustesse. Il fait partie aujourd'hui des serveurs d'applications les plus performants du marché.
Par défaut, Plone stocke ses données dans la base de données de Zope, la ZODB (Zope Object DataBase), une base de données orientée-objet particulièrement adaptée aux applications de gestion de contenu : organisation hiérarchique des données, indexation des informations, etc.
En outre, il est possible de distribuer une application Plone sur plusieurs serveurs, grâce au système ZEO, qui assure une montée en charge gracieuse des applications développées avec Zope.
Très souple dans sa manière de gérer la persistance, Plone permet de stocker certains contenus sur le système de fichiers ou dans des bases de données relationnelles (cf. paragraphe « Intégration dans le système d'information », plus bas).
KSS (Kinetic Style Sheets) est une technologie innovante qui permet d'utiliser la technologie AJAX tout en conservant des applications robustes et maintenables. Un ensemble de feuilles de styles avec une syntaxe compatible CSS définissent les évènements déclenchant des actions exécutées coté serveur. Ces méthodes peuvent manipuler le document affiché à l'utilisateur de manière transparente provoquant une modification dynamique de la page.
Extensible et modulaire
Plone bénéficie de la large communauté de développeurs et d'utilisateurs de Pyton et Zope et de sa propre communauté, auxquelles participe Pilot Systems (cf. section « contributions » de notre site). Ainsi, de nombreux produits fonctionnels (souvent le fruit d'un développement effectué pour un client, puis reversé à la communauté au moyen d'une licence libre) sont disponibles et peuvent donc être intégrés, voire modifiés dans des cas d'utilisation particuliers. Ces produits couvrent des domaines divers : insertion de contenus multimédia (image, vidéo, son), création de formulaires, contenus multilingues, gestion des utilisateurs, sondage, forum, FAQ, glossaire, quiz, blog, galerie photos, newsletters, génération de documents PDF, commerce/paiement en ligne, etc.
Voici deux produits Plone : Portletification et webcouturier-dropdownmenu
De son côté, Archetypes permet de facilement concevoir et définir simplement n'importe quel type de contenu. L'idée est de simplement indiquer un schéma, définissant les caractéristiques (type : chaîne de caractères, entiers, etc., permettant ainsi une validation aisée des contenus) des champs (données et méta-données), la façon dont ils sont éditables et celle dont ils sont affichés. Cette simplicité permet un développement et des allers-et-retours de modification/validation très rapides.
Cette simplicité permet un développement très rapide d'une première maquette qui est affinée selon les retours des clients, pour finalement constituer l'application définitive. ArchGenXML permet de générer le code Archetypes directement à partir d'un schéma UML.
Intégration dans le système d'information
De plus en plus souvent, notamment dans le cas d'un intranet ou d'une application spécifique, Plone doit s'intégrer dans un système d'information existant et donc s'interfacer avec des services ou logiciels variés.
Comme abordé plus haut, il est ainsi possible d'intégrer dans Plone une connexion à un annuaire compatible LDAP. De même, il existe des connecteurs pour un certain nombre de SGBDR (systèmes de gestion de bases de données relationnelles), incluant MySQL, PostgreSQL, Oracle, Sybase ainsi que Microsoft SQL Server et Access (via un lien ODBC). Plone peut également être connecté à un serveur de mail (SMTP, POP ou IMAP).
En ce qui concerne les web services, Plone n'est pas en reste, puisqu'il permet de communiquer via XML-RPC ou SOAP. Naturellement, Plone peut également effectuer de simples requêtes HTTP, FTP et WebDAV (éventuellement sécurisées via SSL).
Une communauté solide pour une solution éprouvée
Plone bénéficie de sa large communauté de développeurs et d'utilisateurs. Cette communauté est autant composée de professionnels passionnés que d'entreprises de service, engagées dans le développement de Plone via leurs clients, assurant un niveau d'exigence professionnel.


Plone.org est le site officiel de Plone, Plone.net est un site regroupant les acteurs et utilisateurs de Plone
Ainsi, la majorité des fonctionnalités de Plone et des modules complémentaires existants sont le fruit d'un travail effectué dans le cadre d'un contrat avec un client ayant adhéré à cette démarche. Le résultat est d'une part une grande qualité et un gage de maintenance.
Organisée, la communauté s'articule autour de la Plone Fondation. Le réseau Plone.net fédère, quant à lui, les prestataires de services autour de Plone (développement, hébergement, formation, consulting) ainsi que des cas d'utilisation et des références. On peut ainsi y découvrir que des organisations ou entreprises diverses et réputées utilisent Plone : la Nasa, EADS Astrium, la CIA, Novell, Oxfam, etc.
Pour en savoir plus
Pour en savoir plus sur Plone, vous pouvez visiter :
- le site officiel de Plone : Plone.org (entièrement en anglais, sauf sa section en français : Plone.org/fr) ;
- les rubriques «Documentation» qui inclut des manuels de référence, des tutoriaux, des fiches techniques, etc. et « Produits» où sont catégorisés et documentés plusieurs centaines de produits de qualité pour Plone, disponibles sous une licence libre) du site officiel ;
- le service Objectis (Objectis.org), géré par Pilot Systems et son partenaire Blue Dynamics, qui propose un hébergement gratuit de sites Plone. Objectis héberge plus de 16 000 sites, son interface est en sept langues. C'est le service idéal pour héberger des sites personnels, associatifs ou pour tester les fonctionnalités de Plone. Objectis Pro arrive bientôt, pour apporter une solution professionnelle à faible coût pour héberger des sites Plone.
Vous avez un projet, vous avez une application à maintenir, vous recherchez un hébergement ?
N'hésitez pas à contacter l'équipe de Pilot Systems, soit directement par téléphone au +33 (0)1 44 53 05 55, soit par fax au +33 (0)1 78 90 10 10, soit en utilisant le formulaire de contact.
Chapitre précédent: Zope




















