Tu sei qui: Portale » A propos » Plone

Plone : système de gestion de contenu professionnel open source

Document Actions

Présentation

Plone est un système de gestion de contenu, c'est-à-dire un outil de production de sites web dynamiques. Ces systèmes permettent d'éditer, de modifier et de publier du contenu sur un site internet, un intranet ou un extranet. Ils ont la particularité de séparer la logique, la présentation et le contenu lui-même. Les points forts de Plone sont ses interfaces intuitives, sa modularité et son extensibilité. Il peut servir de base à de nombreux types d'applications web, au-delà de sites internet ou intranet de contenu "classiques".

Plone repose sur Zope, un serveur d'applications écrit en Python et en C, c'est-à-dire une plate-forme qui rend des applications accessibles par Internet (par le biais d'un simple navigateur web). Plone, comme Zope et Python, est open source et dispose d'une importante communauté d'utilisateurs et de développeurs en France, en Europe et dans le reste du monde.

Plone, par sa nature de système de gestion de contenu, est particulièrement adapté à la création de sites internet, intranet et extranet. Mais il peut également être utilisé comme base pour des applications métier, comme le prouve nos nombreuses références.

N'hésitez pas à nous contacter si vous désirez nous consulter pour la réalisation d'une application web.

Types de contenu

Concrètement, un type de contenu correspond à un certain schéma de données, c'est-à-dire un ensemble de champs à remplir dans un formulaire tel que celui présenté ci-dessous (utilisé pour éditer cette page, en l'occurrence) :

Formulaire d'édition d'une page

L'intérêt de spécifier des types de contenu spécifiques est de bien catégoriser le contenu du site, de pouvoir effectuer des recherches précises sur chacun des champs qui composent un type de contenu.

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. Grâce au produit (add-on) Archetypes, il est possible de facilement définir d'autres types de contenu (voir plus loin dans cette page).

Au cours des projets réalisés pour ses clients, Pilot Systems a ainsi développé un module pour Plone (l'add-on PloneExtendedTypes), qui rassemble sept nouveaux types de contenu : l'évenement étendu, l'actualité étendue, le lien étendu, la revue de presse, le communiqué de presse, l'offre de job et sa fonctionnalité de dépôt de CV, les FAQ classées par thèmes. Ces types de contenus sont qualifiés d'étendus car ils intègrent des images, des pièces jointes et des liens, en plus des caractéristiques standards des types Plone.

Accessibilité

Une des forces de Plone est à la fois de constituer 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écialiste de l'utilisabilité, afin de proposer une interface intuitive.

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), 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) é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 Section 508, du numéro de la loi américaine à laquelle doivent se conformer les sites et applications web des agences fédérales américaines, qui 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.

Interfaces utilisateur

Plone propose un système de skin (peau) entièrement configurable, permettant de rester dans le style par défaut (visible par exemple sur le site officiel) ou d'adopter l'identité visuelle d'une entreprise (voir des exemples dans notre liste de références ou dans celle des sites Zope et Plone de référence). De plus, il est possible de proposer à l'utilisateur plusieurs skins sur un même site, lui laissant ainsi le choix de plusieurs styles d'interface (il est également possible de choisir la skin en fonction des rôles de l'utilisateur, ou même dans les préférences de chaque utilisateur).

Plone propose un système de portlet, qui sont des "boîtes" (slots) présentant des données (statiques ou dynamiques) contextuelles. 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, la liste des références relatives à Plone à droite sur cette page : il existe un nombre infini de cas d'utilisation de portlets.

Politique de sécurité : utilisateurs, groupes, rôles et liaison LDAP, Active Directory ou autre

La politique de sécurité de Zope, sur lequel 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 à une ensemble d'interfaces homogènes et faciles à utiliser.

Interface de gestion des utilisateurs

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 le site intranet d'une entreprise, où l'on pourrait créer des groupes d'utilisateur "commercial" et "recherche et développement", ainsi que leur espace de travail associé. Une configuration pourrait être de ne laisser que les membres du groupe "commercial" accéder à leur espace de travail (et la même chose pour le groupe "recherche et développement" dans son propre espace), garantissant une séparation nette 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 "commercial", sauf pour le groupe d'utilisateurs "commercial" qui pourrait y gérer (lecture, écriture, validation, suppression) du contenu.

Grâce à un produit externe régi par une license également open source, il est possible d'interfacer un site Plone avec un annuaire compatible LDAP (comme OpenLDAP ou Active Directory, souvent utilisé dans les réseaux d'entreprise qui utilisent les 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).

De la même façon, il est aussi possible de se connecter à un serveur de base de données relationnelles (comme MySQL, PostgreSQL ou Microsoft SQL Server), où seraient stockées les informations sur les utilisateurs.

Moteur de workflow

Plone intègre un moteur de workflow basé sur les états. Un exemple de ce type de workflow est un circuit de publication d'un document dans un intranet :

  1. Un membre de l'intranet rédige un document et le donne à valider à un responsable. Pendant qu'il rédige ce document, le membre peut choisir de ne pas le rendre visible aux autres utilisateurs du site, afin de pouvoir le modifier sans que personne ne puisse prendre en compte des informations non définitives qui pourraient y être contenues.
  2. Le responsable, lorsqu'il se connecte au site, voit apparaître ce document dans une liste de documents à 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.

Le moteur de workflow peut servir à définir des workflows simples ou complexes, et permet de restreindre les actions ("demander la publication", "publier", "rejeter", etc.) possibles pour chaque état ("privé", "en cours de validation", "public").

L'accès aux contenus peut être restreint d'après leur état : par exemple, seul le rédacteur d'un contenu pourra accéder à un document qu'il a créé et déclaré privé. De même, dans un site internet, seuls les contenus "validés" seraient accessibles à l'internaute non authentifié.

Tout ce qui concerne le workflow peut être modifié facilement grâce à une interface web : états, transitions, gestion de la sécurité, etc.

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 workflow, souvent utilisée pour décrire des processus industriels.

Moteur de recherche

Plone propose un moteur de recherche full-text puissant et rapide qui permet de rechercher des mots ou groupes de mots dans tout contenu déposé sur un site Plone, y compris les fichiers. Il propose plusieurs fonctionnalités évoluées :

  • recherche booléenne classique ("et", "ou", "non") ;
  • définition de mots à ne pas indexer (déterminants, articles, préposition, etc.) ;
  • recherche par proximité ("Pilot NEAR Systems") ;
  • recherche par expansion (une recherche sur "début*" trouvera tous les mots commençant par "début", par exemple "débutant" et "débuter") et expansion automatique configurable (si la recherche sur "début" n'aboutit à aucun résultat, le moteur relancera la recherche sur "début*", permettant de trouver les documents contenant les mots "débutant" et "débuter") ;
  • etc.

Mais ce moteur de recherche peut également être utilisé pour rechercher les documents créés ou modifiés après ou avant une certaine date (voire entre deux dates), par un ou plusieurs utilisateur(s) spécifique(s) du site, etc. Ces options sont disponibles dans la recherche avancée.

De plus, les résultats de recherche peuvent être affichés dans n'importe quel ordre : pertinence, date de publication, etc. Un fil de syndication RSS est automatiquement créé à chaque nouvelle recherche. Les mots recherchés sont ensuite surlignés dans le document qui les contient.

Modulaire, extensible

Basé sur le serveur d'applications Zope et sur le framework de développement 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 (c'est d'ailleurs de cette façon que Pilot Systems procède lors de développements d'applications web basées sur Plone), quasi-indépendants de Plone.

Plone bénéficie ainsi de sa large communauté de développeurs et d'utilisateurs, communauté à laquelle participe Pilot Systems (voir à ce sujet la section contributions de ce 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 license libre) sont disponibles et peuvent donc être intégrés, voire modifiés dans des cas d'utilisation particuliers. Parmi quelques produits connus et couramment utilisés, citons CMFBoard (forum), Epoz et Kupu (éditeurs WYSIWYG), ZWiki (moteur de wiki), etc.

Comme vu plus haut, il est également possible d'intégrer une connexion à un annuaire compatible avec 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).

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-retours de modification-validation très rapides.

Stockage des données

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. Cependant, dans certains cas, il est préférable ou nécessaire de stocker les données sur un système de fichiers ou dans une base de données relationnelles. La plupart des grands SGBDR du marché sont connectables à Zope et par conséquent à Plone. Ces connecteurs sont généralement libres (MySQL, PostgreSQL, même Oracle), d'autres sont payants, en adéqauation avec la politique de l'éditeur concerné (Microsoft SQL Server et Access).

Crédits

Plone a été créé par trois personnes : Alan Runyan, Alexander Limi et Vidar Andersen. Par la suite, une communauté de développeurs (puis d'utilisateurs) s'est rapidement formée. Une liste des principaux développeurs de Plone est disponible sur le site officiel.

En mai 2004 a été créée la Fondation Plone. Elle a pour objectifs principaux :

  • de détenir la propriété du code, les noms de domaine et les marques relatives à Plone ;
  • d'établir une structure capable de prendre des décisions ;
  • d'être l'organe de communication de la communauté Plone pour les annonces publiques, les communiqués de presse et, plus généralement, pour toute communication ;
  • solliciter des dons et des participations financières de la part d'entreprises qui utilisent Plone comme socle applicatif (comme cela a été le cas avec Computer Associates).

L'ensemble de l'équipe technique de Pilot Systems est membre de la Fondation Plone.

Pour en savoir plus

Pour en savoir plus, vous pouvez visiter :

Apéros plone

Vous êtes les bienvenus aux apéros plone : un moment convivial pour parler de Plone, Python et plein d'autres sujets

Manuel Plone 3