Pas de nouvelles de Lodel?
Il n’y a pas eu de nouvelles concernant les nouveautés de Lodel depuis un moment, il est maintenant temps de faire un petit point sur ces derniers mois de développement, qui ont permis d’apporter un certain nombre d’améliorations et de préparer la sortie de Lodel 1.0.
Ce qui est indiqué ci-dessous, n’est présent que sur les branches de bugfixes, et le tronc de développement.
Gestion des RSS
Jusqu’à très récemment la gestion des flux RSS était faite par MagpieRSS, cette librairie n’est plus maintenue depuis 2005 si l’on croit ce que l’on voit sur le site du projet. De plus cette librairie utilise beaucoup de fonction de PHP qui sont dépréciés dans les nouvelles version de PHP, en particulier la version 5.3, qui est présent dans la dernière version stable de Debian.
À partir de ce constat, nous avons cherché une librairie de lecture de flux RSS, écrite pour PHP 5.3 et ultérieur, utilisant les concepts objet, et qui soit encore maintenu. Nous en avons trouvé plusieurs, mais la plupart avaient une lacune sur un des critères principaux: le projet n’était pas maintenu.
Nous avons eu la change de trouver une librairie très bien écrite, qui est toujours maintenue à l’heure actuelle, et qui fonctionne beaucoup mieux de MagpieRSS: SimplePie.
Le travail d’intégration de cette librairie n’a pas été bien compliqué, car elle est relativement compatible avec MagpieRSS.
Cette modification sera présente dans Lodel 1.0, et Lodel 0.9.1, qui devront bientôt voir le jour.
Gestion du Cache
Lodel existe depuis longtemps, les besoins ont beaucoup évolués depuis les premières utilisations, et les fonctionnalités sont apparues au fil des besoins. Aujourd’hui, Lodel est utilisé dans des architectures à haute disponibilité, ce qui fait de nouveau évoluer les besoins.
La structure du cache de lodel ne correspondait plus au besoin des architectures HA(High Availability), le cache doit pouvoir être totalement séparé du code; C’est pourquoi, nous avons réécrit la gestion de cache afin de pouvoir spécifier un répertoire spécifique qui contiendra tout le cache, et rien que le cache.
Cela permet de pouvoir stocker le cache sur un serveur distant, ou dans la ram, ou sur un système de fichier particulier afin d’obtenir de meilleures performances.
Cette fonctionnalité sera aussi disponible dans Lodel 1.0, 0.9.1, et sur la branche de bugfix de la version 0.8.
Lodel 1.0
Venons-en à la future version majeure de lodel, beaucoup de travail a été fait pour améliorer et faire évoluer lodel.
Tout d’abord, l’interface a été un peu revue, les couleurs ont changé, et certains processus, comme l’import de documents, ont étés revus.
La principale nouveauté dans Lodel 1.0 est l’abandon de ServOO à l’avantage de OpenText/OTX, qui permet la conversion des documents Office vers de la TEI, par conséquent Lodel sait maintenant importer de la TEI. Plusieurs revues utilisent déjà cette fonctionnalité, et stylent leurs documents directement en TEI (Discours, Journal of the Text Encoding Initiative). Il n’y a donc plus besoin d’un outil aussi lourd que Microsoft ou Open/Libre Office. Pour les plus aventureux un éditeur texte suffit, pour les moins téméraires il existe différents outils d’éditions XML, comme Oxygen ou bien XML Editor
Migration 0.7 – 0.9 : points pratiques
Hier, nous avons installé Lodel 0.9. Aujourd’hui, le programme est plus compliqué : migrer des sites en 0.7 vers des sites en 0.9. Toujours avec l’aide du développeur de Lodel, ce qui accélère grandement les choses.
Les structures sont différentes entre la version 0.7 et 0.8 : par exemple, l’identifiant est unique en 0.8 et représentent un objet. En 0.7, le français est la langue de base, en 0.8, c’est l’anglais. Tout ceci nécessite quelques adaptations, qui seront rendues plus faciles grâce aux scripts de migration fournis, mais il est indispensable de bien connaître le modèle éditorial (ME) de l’ancienne version et le modèle éditorial pour la nouvelle version : c’est pourquoi, il est conseillé de faire en amont un travail complet de définition du modèle éditorial pour limiter les adaptations pour chaque site du paquet de sites à migrer. Les évolutions futures du modèle seront ensuite plus facile à mettre en oeuvre. En pratique, il est conseillé de définir un ME propre sur un site vide, de l’exporter au format XML dans le répertoire définit à l’installation de lodel et d’importer ce ME à l’étape d’import XML après la migration.
Au niveau des données
Il faut d’abord effectuer dans l’interface d’administration du site à migrer (0.7) un export des données. Ces données sont ensuite importées dans un lodel 0.7 utilisé uniquement pour la migration.
Le script va casser la base de données, il donc indispensable de travailler sur une copie du site en production pour que le site en production reste accessible. Après le passage de ce script, la base peut fonctionner en 0.8. Le script n’efface pas les données, les tables originelles sont copiées dans des tables nommées nom-table_old.
Migration
Tout ce qui est relatif au modèle éditorial porte pour l’exemple sur celui de Revues.org.
Copier le script https://sourcesup.cru.fr/scm/viewvc.php/*checkout*/branches/version_0_7-bugfixes-branch/export_to_08.php?root=lodel à la racine du site en 0.7 (par exemple dans le répertoire mondomaine/monsite07). Copier également le script https://sourcesup.cru.fr/scm/viewvc.php/*checkout*/branches/version_0_7-bugfixes-branch/lodel/scripts/07to08.php?root=lodel dans le répertoire lodel/scripts (mondomaine/monsite07/lodel/scripts).
Prêt? Alors lancez http://mondomaine/monsite07/export_to_08.php
A priori, il n’y a pas besoin de modifier les champs g_title et g_name, donc laisser la valeur par défaut. Le troisième champ sert à déplacer les documents annexes et les sources, on les déplacera manuellement dans une étape ultérieure. En résumé, on décoche tout.
La base de données est maintenant prête à être utilisée en 0.9. Il faut donc faire un dump de celle-ci, et l’importer dans un site en 0.9.
Nous pouvons maintenant effectuer la mise à jour du modèle éditorial via l’import XML.
Il va falloir indiquer à lodel comment se correspondent les champs entre les deux versions : l’ancien modèle éditorial est présenté à gauche, le nouveau est à droite.
Si le ME a été transformé par rapport au modèle par défaut, ne pas indiquer de correspondance et laisser le champ vide (dans la colonne nouveau ME), lodel ajoutera le champ.
Les classes du ME correspondent à des tables de la base de données. Chaque champ doit être compris dans un groupe de champs.
En 0.8, la classe documents est transformée en classe textes.
- étape 1 : mise à jour des groupes de champs
- étape 2 : mise à jour des classes. la classe documents n’a pas d’équivalent dans le ME et devient textes.
- étape 3 : mise à jour des champs
- étape 4 : conversion des types
- plan = information
- chercheur = individu
- volume = rubrique
- colloque = rubrique
- regroupement = souspartie
- docannexe-lienfichier = fichierannexe
- docannexe* = lienannexe
- breve = billet
- presentation = information
- regroupement-documentsannexes : pas d’équivalent
- articlevide = article
- objetdelarecension : pas d’équivalent
- motcle = motclesfr
- periode = chrono
- étape 5 :
Si jamais vous recevez comme nous l’erreur “unknown column mask”, pas de souci, une petite modif de table dans mysql : alter table tablefields_oldME add mask text not null
- étape 6 : on y est presque, il s’agit de faire la concordance pour les textes simples
- lien = url
- datepubli = date
La mise à jour du ME est presque terminée. On peaufine en lançant un dernier script complete.php qui est une compilation des scripts disponibles sur http://www.lodel.org/wiki/index.php/Migration_Lodel_0.7_vers_Lodel_0.8.
Il reste encore à transférer à la main les documents annexes et les fichiers sources (on l’avait laissé à faire pour plus tard…) : il faut copier en respectant les permissions sur les répertoires (donc utiliser les options p et r pour la commande cp). Donc, copier le répertoire docannexe de l’ancien site vers le nouveau site, ainsi que le répertoire lodel/sources. En 0.9, puisque la langue de base est l’anglais, docannexe contient un sous-répertoire file, ne pas renommer la copie du répertoire fichier du site en 0.7 : les répertoires file et fichier cohabiteront sans problème dans le répertoire docannexe et assureront la continuité dans le nommage des documents annexes.
Une dernière question sur l’indexation pour terminer la matinée…
Pour activer le moteur de recherche interne, il faut affecter la variable searchEngine à true dans le fichier lodelconfig.php global. Pour autoriser l’indexation d’un site, dans l’interface d’administration, cliquer sur le lien reconstruire l’index. Puis, après la création ou la mise à jour d’une entité, l’indexation automatique sera lancée .