Masque de validation de champs de type texte

Dans la 0.9 j’ai rajouté la possibilité de filtrer le contenu des champs de type texte du ME avec l’utilisation de masque (et pseudo-masque) ou des expressions régulières.

Un masque est une chaine de caractère comprise entre deux caractères ‘%’ sans espaces (’% blah%’ ou ‘%blah %’ ne fonctionnera pas, alors que %blah% oui)

Exemple avec un masque :
- “p. %1-2%” obligera l’utilisateur à entrer une valeur correspondante à ‘p. x-x’ avec ‘x’ étant un nombre allant de 0 à 9

Une autre possibilité est d’utiliser le mode ‘raisonnable’, qui va analyser la chaine de caractère passée dans le champ et générer une expression régulière  qui sera l’équivalent de la chaine passée SANS limite dans le nombre de caractère, sans tenir compte ni de la casse ni de l’accentuation.

Exemple :
- ‘p. 1-2′ autorisera les valeurs ‘p. 12-1987′, ‘p. 0-1′, ‘p. 1-5488′, ‘apgha…..     45587-987145′ etc…
- ‘testé 10′ autorisera les valeurs ‘alkufhrekbghàéksbg    68744171544′, ‘qgéhgùà 1′, etc..

Pour finir les regexp, pour les utilisateurs avertis :
- ‘/p\.\s\d{1,3}\-\d{1,3}/’ autorisera les valeurs ‘p. 123-123′, ‘p. 1-2′ mais pas ‘p. -2′ ni ‘p. 1-’, etc..

Benchmark de Lodel 0.8.7.3 versus Lodel 0.9

La version 0.9 de Lodel va apporter, en plus de l’import XML du modèle éditorial, des améliorations significatives au niveau des performances.

Les principales modifications ont été effectuées sur les requêtes SQL des templates qui sont maintenant mises en cache (celà inclut les loop ainsi que les variables de traductions), une refonte de la vue et des améliorations au niveau du parser.

Le test a été fait en local sur un serveur dédié, en utilisant Siege (http://freshmeat.net/projects/siege/).

Configuration matériel du serveur :

* 4x Intel(R) Xeon(R) CPU X3363 @ 2.83GHz
* 8 GO RAM
* disques durs 15 000trs/min
* PHP 5.2.6, MySQLi 5.0.51a, installés en configuration de base (paquets Debian)

Configuration de Siege :
root:~# siege -C
CURRENT SIEGE CONFIGURATION
JoeDog/1.00 [en] (X11; I; Siege 2.66)
Edit the resource file to change the settings.
———————————————-
version: 2.66
verbose: false
debug: false
protocol: HTTP/1.1
connection: close
concurrent users: 25
time to run: 60 seconds
repetitions: n/a
socket timeout: 90
delay: 0 sec
internet simulation: true
benchmark mode: true
failures until abort: 1024
named URL: none
URLs file: /root/siege_urls.txt
logging: false
log file: /var/siege.log
resource file: /etc/siege/siegerc
allow redirects: true
allow zero byte data: true
allow chunked encoding: true

Résultats :

Lodel 0.8.7.3 sans cache Lodel 0.8.7.3 avec cache Lodel 0.9 sans cache Lodel 0.9 avec cache
Transactions (hits) 5289 5553 15875 17416
Availability (%) 100 100 100 100
Data transfered (MB) 73,26 76,91 226,05 245,86
Response time (s) 0,28 0,27 0,09 0,09
Transaction rate (trans/sec) 88,76 92,77 262,79 289,93
Concurrency 24,88 24,93 24,95 24,94
Longest transaction (s) 8,16 1,44 16,27 0,67

On peut voir que Lodel 0.9 peut maintenant servir plus de 3 fois plus de pages que sa version précédente, avec une moyenne de 0.09s de temps de calcul par page contre 0.28s auparavant.

Petit plus, Lodel 0.9 sera compatible avec le niveau d’erreur E_STRICT .. !

Sortie de Lodel 0.8.7

Suite au remplacement du système de cache du logiciel et au cours de la sortie d’une série de mises à jour (release), des bugs ont été découverts et rapidement corrigés depuis la version 0.8.2. Voici donc une version 0.8.7 intégrant les corrections nécessaires. Vous trouverez ci-dessous les principales améliorations et corrections de bugs.

Nouvelles fonctionnalités, améliorations et mises à jour

Améliorations logicielles

Visibles par l’utilisateur :
  • les options des sites peuvent maintenant être multi-langues
  • le renseignement du courriel est désormais obligatoire lors de la création d’un utilisateur
  • la page ‘missing.html’ a été ajoutée et s’affiche lors de la demande d’une page qui n’existe pas
  • dans le choix de type de fichier permis au téléchargement (upload), le format XML a été ajouté
  • pour restreindre les droits aux seuls administrateurs Lodel, la gestion des droits a été modifiée pour :
    • l’export de données,
    • l’import de données,
    • l’import du modèle éditorial
Fonctionnement :
  • remplacement du système de cache par le paquet PEAR Cache_Lite (http://pear.php.net/package/Cache_Lite)
  • la variable globale ‘defaultlang’ prend comme valeur les languages disponibles par défaut dans Lodel
  • erreur 403 renvoyée lorsque le parser rencontre un problème (fichier absent, erreur LodelScript)
  • ajout de caractères UTF-8 dans la fonction ‘makeSortKey’ permettant de générer le sortkey des entrées et des auteurs dans les index (tri alphabétique)
  • indentation du code source optimisée
  • augmentation de la limite de la taille de fichier chargé par le ServOO à 10Mo
  • obligation de passer par le fichier index.php pour récupérer les docannexe (similaire à Lodel 0.7)
  • erreur 404 renvoyée lorsqu’une page inconnue est demandée

Améliorations de l’interface

  • affichage des index optimisé :
    • découpage et affichage des index par lettre (une page par lettre). La présentation se fait par tranche de 30 entrées par lettre, afin d’éviter un temps de chargement trop long
    • l’affichage du nombre d’entrées se fait par type d’index
  • Sortie XML :
    • ajout de l’API GeSHi pour la coloration syntaxique du XML d’une entité
    • création du filtre ‘highlight_code’ permettant de coloriser syntaxiquement un contenu HTML/XML

Sécurité

  • protection anti-DOS DOS (déni de service) : pour pouvoir regénérer les fichiers mis en cache (clearcache), il faut maintenant être authentifié

Améliorations LodelScript

  • ajout d’une possibilité de trier par idtype dans la boucle LodelScript ‘alphabetSpec’

Correction de bugs

Au niveau :

De l’interface

  • la page de chargement de document par ServOO a été optimisée suite au débuggage du JavaScript

Du Lodelscript

  • correction du comportement de la boucle LodelScript ‘foreach’ (associée aux tableaux) qui créait une erreur PHP (WARNING) lorsqu’on lui passait en argument une variable représentant un tableau vide ou d’un autre type
  • réécriture du filtre paranumber de numérotation des paragraphes

Du logiciel

  • correction d’un bug du parser où les en-têtes d’un fichier template n’étaient plus récupérées (refresh, charset…)
  • vérification de l’intégrité des URLs : les URL comme www.monsite.com/index.php?id=12/lodel/edition affichaient une page sans styles CSS ; désormais, une page d’erreur s’affiche.

Vous pouvez télécharger le package sur sourcesup à cette adresse : (http://sourcesup.cru.fr/frs/?group_id=193)

Sortie de Lodel 0.8.2

Une nouvelle mise à jour de Lodel 0.8 vient de sortir. Vous trouverez ci-dessous les principales améliorations et corrections de bugs.

Nouvelles fonctionnalités, améliorations et mises à jour

  • utilisation désormais possible de plusieurs ServOO (en cas d’interruption momentanée d’un des ServOO)
  • possibilité de gérer des accès restreints à certaines pages de l’interface publique (selon la maquette)
  • internationalisation : lorsque aucun utilisateur n’est enregistré, la langue du site est prise en compte comme langue principale (par défaut) sur l’interface publique
  • affichage des index amélioré en interface privée, prenant en compte le type de tri défini dans le ME (hiérarchique, alphabétique, par ordre d’ajout)
  • ajout d’un filtre permettant de nettoyer les mises en formes locales sur les appels de notes (cleanCallNotes)
  • ajout d’un filtre anti-spam qui crypte les courriels dans la source HTML du document (cryptEmails)
  • ajout des classes PEAR Mail et Mail_Mime. Pour leur utilisation, modification de la fonction send_mail qui permet d’envoyer un mail HTML correctement formaté
  • ajout d’une White List pour les fichiers qu’il est permis de charger
  • ajout d’un champ langue pour préciser la langue des types d’entrées d’index

Corrections de bugs :

  • résolution du problème des urls de retour aléatoires
  • débuggage de la fonction génératrice de textes en différentes langues
  • débuggage de l’édition d’une entité : les espaces insécables étaient supprimés des titres lors de l’édition d’une entité (à l’import ou à l’édition)
  • lors du rechargement d’un document, le fac-similé est désormais maintenu
  • débuggage de la fonction getFileMime qui retournait une information erronée lorsque le nom du fichier comprenait un espace
  • modification du filtre isadate pour prendre en compte le fait qu’une date peut être égale à NULL
  • lors de l’édition par un administrateur d’un utilisateur déjà existant, la double vérification des mots de passe a été désactivée

Développement et optimisation du code LodelScript :

  • ajout des conditions ‘elseif‘ et ’switch
  • ajout de la possibilité de comparaison par l’utilisation d’expressions régulières dans une condition

Nouveau package disponible sur http://sourcesup.cru.fr/frs/?group_id=193

Sortie de Lodel 0.8.1

Lodel 0.8.1 : première mise à jour de Lodel 0.8

Après la sortie en octobre 2007 d’une version majeure de Lodel, la version 0.8, voici aujourd’hui celle d’une première mise à jour, la Lodel 0.8.1.

L’équipe de Lodel.org a travaillé à la création de nouvelles fonctionnalités, à l’apport d’améliorations et à la correction des premiers bugs constatés.

Les nouveautés de Lodel 0.8.1

Attention : tous les développements sont optimisés pour fonctionner en PHP5. Cette version de Lodel n’est plus compatible avec PHP4.

Nouvelles fonctionnalités, améliorations et mises à jour :
  • possibilité pour un admnistrateur Lodel de forcer un utilisateur à modifier son mot de passe
  • ajout du filtre preg_replace : possibilité de chercher/remplacer les occurences d’une expression régulière
  • amélioration de l’utilisation des champs multilingues dans le Lodelscript : ajout de la variable globale ‘defaultlang’ contenant toutes les langues disponibles par défaut
  • possibilité de choisir le répertoire d’extraction des fichiers importés par le Servoo : ajout de la variable globale $tmpoutdir
  • Mise à jour de Wikirenderer
Corrections de bugs :
  • le comportement de FCKEditor (barre d’outils de mise en forme) a été optimisé
  • l’export de données est à nouveau disponible

Une description complète de ces corrections est accessible sur Sourcesup, la plate-forme web de gestion de projet destinée aux établissements d’enseignement supérieur : http://sourcesup.cru.fr/tracker/?group_id=193

Pour effectuer la mise à jour de Lodel 0.8 vers Lodel 0.8.1, 2 possibilités vous sont offertes:

Mises à jour

Mise à jour manuelle des fichiers :
  • faire une copie de sauvegarde du répertoire d’installation de Lodel : cp -pR monLodel monLodel.old
  • décompresser l’archive (tar.gz ou .zip) dans un répertoire temporaire : tar xvzf lodel-0.8.1.tar.gz
  • copier tous les fichiers de la nouvelle version dans votre répertoire d’installation de Lodel : cp -pR lodel/* monLodel/

Les fichiers sont disponibles à cette adresse : http://sourcesup.cru.fr/frs/?group_id=193

Mise à jour avec Subversion :

Les versions 0.8.x sont sur la branche version_0_8-bugfixes-branch. Si vous avez installé Lodel 0.8.x avec Subversion, vous avez donc effectué le checkout suivant : svn checkout http://subversion.cru.fr/lodel/branches/version_0_8-bugfixes-branch monLodel

Pour mettre à jour votre version, il suffit de faire un update, en exécutant les commandes suivantes :

  • cd monLodel
  • svn update

N’hésitez pas à poser vos questions à l’équipe de Lodel.org sur les listes de diffusion lodel-users et lode-devel (http://sourcesup.cru.fr/mail/?group_id=193).

Compatibilité de Lodel avec PHP4

Suite à l’annonce de l’équipe de PHP de ne plus supporter PHP4 (seules les mises à jour de sécurité sont encore émises jusqu’a cet été), l’équipe de Lodel a décidé d’orienter ses développements pour PHP5 uniquement et de ne plus garder de compatibilité avec PHP4.

Lodel est donc, à partir de sa version packagée 0.8.1, uniquement compatible avec PHP5.

Nous ne pourrons plus répondre à des problèmes qui peuvent apparaitre sur un hébergement utilisant PHP4, et vous conseillons de mettre à jour votre version de PHP.

Sortie de Lodel 0.8

Lodel 0.8, nouvelles fonctionnalités, améliorations et mises à jour

La sortie de la version de Lodel 0.8, publiée en octobre 2007, correspond à une évolution majeure du logiciel d’édition électronique.

Voici la liste des améliorations et nouvelles fonctionnalités apportées au logiciel dans la version 0.8 :

Interface privée :

  • une refonte graphique améliore l’ergonomie du logiciel
  • barre de fonctions (desk) comportant de nouvelles fonctionnalités :
    • tableau de bord : gestion éditoriale améliorée avec l’affichage de la liste des documents en attente de publication, de l’historique des modifications et la possibilité de suivi de ces informations via des flux RSS (authentification Lodel nécessaire)
    • informations : statistiques portant sur le nombre, le type et le statut des documents ; descriptif du ME (modèle éditoriale) ; informations techniques liées au serveur
  • amélioration de la gestion du site :
    • métadonnées ajoutées dans Lodel et exclues des templates
    • nouvelle gestion des index
    • nouvelle gestion des index de personnes
  • amélioration de la gestion des index :
    • affichage des documents liés à une entrée d’index
    • possibilité de gérer les index des personnes
    • possibilité de créer des index par langue
  • moteur de recherche interne intégré à l’interface
  • interface entièrement internationalisée : le texte de l’interface de Lodel est géré dans la base de données pour différentes langues (FR, EN, ES, PT,…)
  • possibilité de choisir le niveau de complexité dans l’affichage de l’interface :
    • simple
    • normal
    • avancée
    • débuggage
  • simplification ergonomique de l’édition des entités : les pages éditions et fonctions sont accessibles depuis la même page
  • possibilité de changer le type des entités
  • possibilité de déplacer les différents types d’entités et plus seulement les documents (il est donc maintenant possible de déplacer une entité entière avec ses sous-entités).
  • affichage des documents annexes au niveau du titre du parent
  • import Servoo : options supplémentaires disponibles lors de l’import de documents : importer à nouveau, importer sans passer par le formulaire, importer et visualiser…
  • amélioration de l’affichage pour la vérification du balisage après l’import Servoo : indication des styles internes et des classes, surlignage des mises en formes locales
  • amélioration de la gestion des comptes d’utilisateur
  • possibilité pour les administrateurs de modifier les options du site
  • import/export de nouvelles langues (internationalisation)
  • mise en place du script de test de robustesse des mots de passes lors de la création d’un nouveau compte utilisateurs
  • édition :
    • ajout de la barre d’outil wysiwyg (FCKEditor) qui permet la mise en forme du texte directement sur l’interface
    • possibilité d’éditer et de modifier les descriptions des auteurs
    • possibilité d’attacher un document à plusieurs publications par le biais d’alias
    • choix de créer des entités par import (conversion via ServOO) ou par édition simple et classique via l’interface
    • possibilité d’ajouter et de modifier des styles interprétables par Lodel
    • amélioration de la gestion des dates (dates en langage naturel, ajout de la fonction de délai c’est à dire possibilité de publier aujourd’hui/today ; maintenant/now ; hier/yesterday ; demain/tomorrow ;(dans|il y a) x (an|mois|jour|heure|minute))
  • ajout d’une fonction de mise en maintenance d’un ou plusieurs sites

Interface publique :

  • évolution de la navigation entre interface privée et interface publique : double fil d’ariane (côté édition et côté site)
  • internationalisation
  • suppression des mini-textes
  • la fonction de signalement d’un document a été réactivée
  • recaptcha (système de vérification de formulaire) intégré pour la partie signalement de documents

Modèle éditorial (ME) de revues.org :

  • création des classes d’entités (champs, types) et ajout de 4 classes (correspondantes au ME Revues.org)
  • possibilité d’ajouter des documents de type média / site / flux rss / billet / annonce / équipe …
  • ajout de nombreux champs (titres en différentes langues, numéro du document,…)

Développement et optimisation du code :

  • adoption du développement en mode objet
  • traduction des noms des objets, tables et champs SQL en langue anglaise
  • possibilité d’ajouter des attributs LodelScript dans la balise body
  • modification du parser Lodel : ajout de la possibilité de choisir la langue d’un texte : #TEXTE:#DEFAULTLANG.#VALUE
  • introduction des fonctions dans le LodelScript : possibilité de passer des paramètres dans les macros.

Interopérabilité :

  • OAI : possibilité de créer et de gérer dans Lodel un dépôt de métadonnées compatible avec le protocole OAI-PMH

N’hésitez pas à poser vos questions à l’équipe de Lodel.org sur les listes de diffusion lodel-users et lode-devel (http://sourcesup.cru.fr/mail/?group_id=193).

Sortie du styliste Lodel

Styler des documents pour Lodel à l’aide d’OpenOffice.org

Description

Jusqu’à présent, les utilisateurs de Lodel utilisaient l’importation via Servoo de documents stylés dans Word. Laurent Godard, de la société Indesko, a créé le Styliste Lodel, qui permet de styler les documents dans OpenOffice.org et de les importer dans Lodel. Nous en sommes à la version 0.6,1, que nous soumettons à vos essais.

Le styliste est configurable à l’aide d’un fichier texte facile à modifier. Il est ainsi possible de définir les styles que l’on veut ajouter et retirer de l’interface du styliste. Le styliste a initialement été développé pour le Modèle éditorial de Revues.org, mais il sera adapté par l’Agence universitaire de la francophonie (qui a financé ce développement) pour son propre Modèle éditorial. Etant lui-même placé en licence GPL, le styliste sera réutilisable pour d’autres usages et d’autres modèles éditoriaux.

Certaines limitations du logiciel OpenOffice.org empêchent d’émuler totalement le fonctionnement du modèle de document Word utilisé pour Lodel. En l’état, les fonctionnalités du Styliste Lodel sont donc inférieures à celles qu’on obtient sur Word. Cependant, il présente de nombreux avantages, au premier rang desquels on compte la possibilité de styler sur Linux, d’adapter le styliste à ses propres besoins et de ne pas dépendre de Microsoft à l’avenir.

Attention : vous devez utiliser OpenOffice.org 2 et le format SXW exclusivement.
Ce styliste est distribué en licence GPL, dans une version qui n’a pas encore été profondément testée. Merci de faire état de vos essais, qu’ils soient fructueux ou non, sur la liste lodel-users.

Téléchargement

Le styliste et sa documentation se téléchargent sur Sourcesup.

Installation

Suivre la documentation.

Crédits

Laurent Godard (Indesko).

Licence

Ce fichier est sous licence GPL. Lisez la licence dans le fichier COPYING.

Sortie de Lodel 0.7.5

Une nouvelle release de Lodel 0.7 est désormais disponible : Lodel 0.7.5.

Cette release est essentiellement destinée à corriger une faille de sécurité découverte – et divulguée – dans les versions 0.7.x. Cette faille permet l’inclusion de fichiers distants si le paramètre register_globals est à ON. Si tel est votre cas, la mise à jour est donc vivement recommandée.

Téléchargement

Lodel 0.7.5 est disponible à l’adresse suivante : http://sourcesup.cru.fr/frs/?group_id=193 Vous trouverez également à cette adresse des patches permettant d’upgrader les versions 0.7.3 et 0.7.4 en 0.7.5.

Mise à jour

Pour effectuer la mise à jour, 3 possibilités :

1. Utilisation des patches

Cette solution sera la plus rapide, si vous connaissez le numéro de la version de Lodel installée. Les patches suivants sont disponibles :

  • lodel-0.7.3_to_0.7.5.patch : pour upgrader une 0.7.3 directement en 0.7.5 ;
  • lodel-0.7.4_to_0.7.5.patch : pour upgrader une 0.7.4 en 0.7.5.

Pour appliquer l’un de ces patches (sous Linux) :

  • faites une copie (au cas où…) du répertoire d’installation de Lodel :
  • cp -pR monLodel monLodel.old
  • copier le patch à la racine de Lodel puis exécuter les commandes suivantes :
    • cd /a/la/racine/de/monLodel
    • patch -p1 -f < lodel-0.7.x_to_0.7.5.patch

2. Mise à jour manuelle des fichiers

  • faites une copie (au cas où…) du répertoire d’installation de Lodel :
    • cp -pR monLodel monLodel.old
  • décompresser l’archive (tar.gz ou .zip) dans un répertoire temporaire :
    • tar xvzf lodel-0.7.5.tar.gz
  • copier tous les fichiers de la nouvelle version dans votre répertoire d’installation de Lodel :
    • cp -pR lodel/* monLodel/

3. Mise à jour avec Subversion

Les versions 0.7.x sont sur la branche version_0_7-bugfixes-branch. Si vous avez installé Lodel 0.7.x avec Subversion, vous avez donc effectué le checkout suivant : svn checkout http://subversion.cru.fr/lodel/branches/version_0_7-bugfixes-branch monLodel

Pour mettre à jour votre version, il suffit de faire un update, en exécutant les commandes suivantes :

  • cd monLodel
  • svn update

N’hésitez pas à poser vos éventuelles remarques ou questions sur les listes.

« Page précédente