Utiliser openOffice comme éditeur de contenu pour CMS

Le manque de réflexion lors choix d'un éditeur de contenu d'un CMS engendre souvent des problèmes à terme. Car entre le moment du choix et celui où l'on veut du contenu plus web 2.0 (ou même 3.0 ...) on se rend compte que des années d'archives sont à ré-écrire ! C'est généralement à ce moment là qu'on se rend compte que l'éditeur choisi pour sa capacité à insérer des tableaux, des images ... le faisait  en produisant une page présentable visuellement mais dont le code html est inutilisable car non fiable au niveau sémantique...

Contenu sémantique et balisage sémantique

Pourquoi ne pas considérer une page web comme du contenu ayant du "sens" ? C'est pourtant bien l'objectif du SGML, le lointain parent du HTML...

Le système de balisage du HTML permet déjà par exemple de déterminer des paragraphes, des titres ...

Aujourd'hui le nommage des attributs "class" permettent de mieux "délimiter" des unités de sens dans le contenu, par exemple les micro-formats permettent de définir des organisations, des évènements... , il y a aussi les RDF, les métas Dublin Core etc...

L'orientation de tout ce balisage et nommage de classes est finalement celui-ci : qu'une machine puisse extraire des "unités" d'information utiles, par exemple les contacts présents sur une page, ou les évènements...

Il est déjà possible de voir ces pratiques en fonctionnement, par exemple un plugin pour firefox ("operator") permet d'extraire des données sur des pages contenants des données "micro-formatées".

Pour le site de l'agence, vu les limitations de l'éditeur actuel, une série d'expressions régulières permettent de convertir des données en microformats, elles repèrent les données de type adresse, téléphone etc, encadrent ces données par des balises ayant comme l'attribut "class" voulu.

L'usage d'expressions régulières afin de rendre le balisage sémantique n'est évidemment pas la bonne solution. Il faut que le contenu soit sémantique à la source : lors de la création du contenu dans l'éditeur.

Editeur sémantique

Je me suis mis à la recherche d'un éditeur sémantique. Le système FCK n'est pas le meilleur (peut-être vu sa complexité...) très difficile à modifier, en tout cas pour moi...

En cherchant bien, j'ai trouvé un éditeur ne fonctionnant pas comme un FCK, c'est à dire qui permet tout et n'importe quoi, mais un éditeur qui induit dans l'usage d'avoir une réflexion sémantique : WYMeditor. Cet éditeur n'est pas WYSIWYG (what you see is what you get : ce que vous voyez est ce que vous avez) mais veut être WYSIWYM (what you see is whath you mean : ce que vous voyez est ce que vous pensez)...

WYMeditor utilise une framework bien documentée (JQuery) et m'a permis de l'agrémenter par exemple de boutons créeant automatiquement des notes de bas de pages, un autre de liaison vers un dictionnaire de synonymes openoffice, un autre vers un dictionnaire d'acronymes...

Ceci est bien intéressant, sauf que... les utilisateurs quotidiens font essentiellement du "copier coller" de contenu depuis leur ordinateur (essentiellement depuis openoffice-writer ou office-word...) ce qui nécessite de complexes opérations de nettoyage...

Ce qui est aussi embêtant c'est de dépendre de javascript tournant sur les machines clientes : je travaille sous Linux-ubuntu (très bien ;-)) , les journalistes sur des Macs avec différentes versions d'os, d'autres sur des Windows, puis et surtout les navigateurs: firefox (...2,3), exporer (...6,7,8), Safari, Chrome etc... normalement l'utilsation de framework telles que mootools ou Jquery permettent d'oublier ce souci... sauf que... il y a des bugs...

OpenOffice comme éditeur de CMS :

En allant au dernier Joomla! day se passant en Hollande (y'avait plein de belges !) , je présentais à quelqu'un ma version de WYMeditor, en lui disant que l'idéal est d'avoir en quelque sorte un "OOwriter" ou "MSword" en ligne puisque les utilisateurs y sont habitués et qu'en plus ils font ce satané copier-coller... en allant plus loin, je lui demandais s'il était possible de faire un "pont" entre Openoffice et un service web quel qu'il soit... Et là il m'a répondu qu'il avait à l'époque fait une connexion entre OObase et mysql...

Rentré chez moi, je me suis attelé à la tâche : il y a moyen de le faire !

Les avantages d'utiliser openoffice-writer comme éditeur :

  • il est gratuit et fonctionne sur tout OS
  • la plupart des gens sont déjà familarisés avec (le passage de MSword à OOwriter est vraiment simple, jen suis la preuve vivante ;-))
  • dictionnaire de synonymes directement accessible
  • corrections orthographique et grammaticale natives
  • liaison vers des bases de données (via des macros il est par exemple possible d'importer des données que l'on "microformatera" dirctement)
  • plus de copier coller sauvage!
  • le contenu peut-être sauver "off-line"
  • il est open-source, de nombreuses macros sont disponibles pour s'adapter aux besoins de tous...

Version en test :

On crée sur un serveur ftp un répertoire pour un utilisateur.

On installe dans openoffice plusieurs macros :

  • une macro permettant une liaison d'authentification via un script php situé sur le serveur.
  • une macro de pont avec le répertoire FTP
  • une macro permettant de gérer les différentes actions de création, sauvegarde supression des documents vers le CMS

On crée dans open office un profil ainsi qu'un modèle pour restreindre les boutons visibles et faire un template ressemblant au template du contenu sur le site.

Sur le serveur on installe un script PHP permettant une connexion au serveur FTP, un nettoyage du code, la gestion de l'utilisateur.

Je recherche des personnes intéressées par ce système !

contactez-moi par mail : philippe.lambotte@gmail.com

 

Editeur Wysiwym

Bonjour Philippe,

j'appuie 100% ta démarche, quelle seraient les aides dont tu aurais besoin?
Evidemment cel appose des problèmes (et des solutions) de sécurité quand à la connexion vers la BDD du CMS.

Néanmoins un bouton 'publier' depusi Ooo serait le Saint-Graal tant attendu, c-à-d on rattraperait des systèmes tels que sharepoint ou autres CMS (non FLOSS).

M