ME de Lodel 0.8

Un article de LodelWiki.

Jump to: navigation, search

Sommaire

[modifier] Introduction : historique

La version 0.6 de Lodel était fermée : il n'était pas possible pour l'utilisateur de définir ses propres champs ou de modifier les champs existants selon ses besoins.

Le passage à la version 0.7 s'est accompagné de l'apparition du modèle éditorial (ME), qui permet à un non-informaticien d'ajouter ou d'enlever des champs, comme un sous-titre, un sur-titre... Dans la 0.7, il y avait deux classes : publications et documents. Pour chacune de ces classes, il était possible de définir les champs nécessaires pour structurer l'information. À chacune de ces classes pouvaient ensuite être associés des types, nécessaires pour définir le comportement à l'affichage et l'imbrication des informations.

Le passage à la 0.8 s'est accompagné de la généralisation de la notion de ME : aucune classe n'est définie dans Lodel, et il appartient désormais à l'administrateur du site de définir les classes et types qui lui sont nécessaires.

Revues.org fournit dans la version diffusée de Lodel 0.8 le ME utilisé pour la mise en ligne de revues. Les exemples qui suivent correspondent à ce ME.

[modifier] Structure

Concevoir un ME consiste à concevoir, pour chaque site, la structure des données qui seront manipulées par les utilisateurs. Cette structuration s'effectue en trois étapes :

[modifier] Définition des classes

Il s'agit de définir les grandes catégories de contenus mis en ligne, ainsi que les index qui permettent d'établir des liens entre ces contenus. Il existe trois sortes de classes :

  • les entités : par exemple, pour le ME de Revues.org, les publications, les textes, les images ou les liens ;
  • les index ;
  • les index de personnes.

Dans le ME Revues.org, le nombre de classes d'entités a été multiplié :

  • publications
  • textes
  • textes simples
  • personnes
  • fichiers
  • sites

Image:Gestion_du_modèle_éditorial.png

[modifier] Définition des champs

Les classes sont composées de champs, comme un titre ou un sous-titre par exemple. Ils définissent la structure interne de la classe. Il existe plusieurs types de champs (texte, texte, court, email, etc.), afin de caractériser précisément les différents types d'informations contenus dans une classe. Ces champs sont associés à des styles de paragraphe dans le document issu du traitement de texte.

Les champs sont plus ou moins nombreux en fonction de chaque classe. Par exemple, la classe "Sites" ne comprendra que peu de champs (titre du site, URL, flux de syndication...) alors que la classe "textes" en comprendra beaucoup (n° du document, titre, sur-titre, sous-titre, titre alternatif, langue, résumé, texte, notes, annexes, bibliographie...)

[modifier] Définition des types

Les types servent à :

  • définir la hiérarchie des contenus mis en ligne : chaque type peut en contenir d'autres , et ce de manière récursive (par exemple, un objet de type « collection » peut contenir un objet de type « numéro », qui peut lui-même contenir un objet de type «article», etc.). Dans le ME de Revues.org, les enfants que peut contenir chaque type sont définis précisément (voir ci-dessous) : si un "numéro" peut contenir un "article", l'inverse n'est pas possible, par exemple.
  • définir le comportement d'un objet, et notamment d'initialiser ses différentes valeurs lors de sa création : templates associés, mode de création et statut par défaut, indexation par le moteur interne, etc.

Ainsi, tous les types de la même classe partagent les mêmes champs, dans la mesure où les champs sont définis au niveau de la classe, et non au niveau du type (cf illustrations ci-dessus).


Exemple avec la classe publication qui peut contenir les types suivants :

  • collection
  • numéro de revue
  • rubrique
  • sous-partie
  • annuaire de sites
  • annuaire de personnes
  • médiathèque

De même la classe texte contient les types suivants :

  • Editorial
  • Article
  • Annonce et actualité
  • Compte-rendu
  • Note de lecture
  • Informations pratiques
  • Chroniques

Par rapport au ME de Lodel 0.7, les regroupements deviennent des sous-parties.

Image:Classe_publications_types.png

[modifier] Édition des champs

Nous allons prendre pour cela comme exemple l'édition du champ "Titre", dans la classe "texte". Dans l'onglet "Administration", cliquer sur "Classes d'entités" dans la rubrique Modèle éditorial.

Vous arrivez alors sur la page de gestion des classes. A droite de la classe "Textes", cliquez sur "Champs".


Image:Edition_champs_texte.png

Et une fois dans la page d'édition des champs de cette classe, sélectionnez le champ que vous voulez modifier en cliquant sur "modifier", à droite du nom de ce champ. Vous accédez alors à une page d'édition de ce champ.

Image:Définition de champ.png

[modifier] Le bloc identification

  • Identifiant unique : c'est le nom du champ dans la base de données ;
  • nom dans l'interface : c'est le nom du champ utilisé dans l'interface ;
  • nom dans une autre langue : nom du champ utilisé dans l'interface, dans une autre langue.

[modifier] Blocs protection/affichage

  • Champ protégé : empêche un administrateur de site de détruire accidentellement un champ créé par un autre administrateur.
  • affichage dans l'interface : permet de configurer la complexité de l'interface à partir de laquelle un utilisateur va voir apparaître le champ en question. Dans le cas de champs courants comme ici (le champ titre), il vaut mieux laisser en mode "simple". Mais cela permet là encore de sécuriser l'interface en ne proposant certains champs qu'aux utilisateurs les plus avancés.

[modifier] Bloc définition

  • Groupe de champs : sert à classer le champ dans un bloc de l'interface. Ici, il paraît logique que le champ "titre" soit placé dans le bloc titre. De même, le champ "langue du document" sera placé dans le bloc "métadonnées", etc.
  • type de champ : les possibilités sont nombreuses :
    • Texte court (tinytext en SQL) : limité à 255 caractères.
    • Texte (text en SQL) : limité à 65535 caractères.
    • Texte long (longtext en SQL) : plus de 4 milliards de caractères (+/- 4Go).
    • Texte multilingue : champ contenant un texte traduit en plusieurs langues.
    • URL : texte court, Lodel vérifiant qu'il est bien du type http://* (http pouvant être remplacé par ftp, https, file, gopher, telnet, nntp, news).
    • Email : texte court, Lodel vérifiant qu'il est bien du type *@*.*.
    • Nom d'utilisateur : texte court, dont le nombre de caractères doit être compris en tre 3 et 12.
    • Mot de passe : texte court qui ne sera jamais affiché en clair, mais transitera en clair jusqu'à la base, où il sera stocké encrypté (MD5). Actuellement, aucune vérification sur la robustesse du mot de passe n'est effectuée (à effectuer dans une version ultérieure de Lodel).
    • Entier (int en SQL) : entiers signés, codés sur 4 octets. Si aucune valeur n'est renseignée, le champ prend automatiquement la valeur 0.
    • Booléen (bool en SQL) : les deux valeurs possibles sont 0 et 1.
    • Date (date en SQL) : date au format MySQL, automatiquement convertie à l'affichage dans un format lisible (jj mois aa).
    • Date et heure (datetime au format SQL) : date et heure, idem pour le format.
    • Heure (time en SQL) : heure, idem pour le format.
    • Fichier : nom complet d'un fichier (le fichier n'est pas stocké dans la base).
    • Image : nom complet d'un fichier image (l'image n'est pas stockée dans la base). Lodel vérifie que l'extension du fichier correspond bien à un format d'image.
    • Couleur : champ permettant de renseigner une couleur au format hexadécimal.
    • Langue : champ de type texte ne pouvant contenir que des caractères alphabétiques, et permettant la sélection de la langue du document (fr, en, es...). Une liste de langues prédéfinies est disponible, et peut être modifiée par un utilisateur avancé .
    • Relation : champ qui permet d'établir des relations entre les entités (et entre elles seulement : ne fonctionne pas avec les index). Les relations sont unidirectionnelles : si une entité A pointe vers les entités B et C, cela ne signifie pas que B et C pointent vers A. Il est possible d'attribuer un nombre illimité de relations pour chaque document. Ce type de champ permet notamment de mettre en oeuvre un site multilingue, chaque document pouvant être relié à sa traduction.
    • Liste d'items prédéfinis : ce champ permet de définir par avance l'ensemble des valeurs qu'il peut prendre (ces valeurs sont rentrées dans le champ de formulaire "Paramètres d'édition, séparés par des virgules).
    • Historique : ce champ est automatiquement rempli à chaque modification (création, édition, changement de statut) d'un document. Les différentes modifications sont insérées dans l'ordre chronologique (la première au début du champ, la dernière à la fin). Ce champ permet d'obtenir la liste des modifications effectuées sur un document, mais ne constitue pas un vrai système de log.

La définition de ce type doit être soigneusement soupesée, sous peine de créer des erreurs. Par exemple, si un champ de type "langue" se voit attribuer plus de deux lettres, on crée un erreur "invalid language code", car Lodel ne reconnaît que des codes de langue de deux lettres.

  • Equivalent Dublin Core ; pour les métadonnées, renseigner correctement cette donnée est essentiel au bon affichage de la maquette, et pour alimenter les dépôts OAI. Si le champ ne concerne pas une métadonnée, ne rien indiquer. Ici, il faut sélectionner "DC.Title".

Image:Définition de champ 2.png

[modifier] Le bloc "Création"

  • Style à l'import : définit les styles qui seront reconnus par Lodel comme styles alimentant le champ en questions. En effet, lors de l'import par le servOO, il faut spécifier plusieurs noms de styles, car selon la version du logiciel de traitement de texte utilisée, le nom du style peut varier. Ainsi, Lodel reconnaît ici non seulement "titre" mais aussis "title", "titleuser" et "heading".
  • Condition : on peut sélectionner :
    • aucune condition
    • champ requis : Lodel vérifie, lors de l'édition, que la valeur du champ est effectivement renseignée ; si ce n'est pas le cas, il lui attribue sa valeur par défaut, si celle-ci est indiquée, sinon, il génère un message d'erreur ; le champ n'est pas mis automatiquement à jour lors des modifications ultérieures ;
    • n'utiliser la valeur défaut qu'à la création
    • permanent : la valeur attribuée lors de la création (valeur par défaut ou renseignée par l'utilisateur) ne peut plus être modifiée par la suite ;
    • unique : cette condition peut servir à éviter les doublons, par exemple pour un identifiant METS

Ces contraintes sont particulièrement utiles pour la gestion des dates : en indiquant "today" dans la valeur par défaut d'un champ de type date (ou heure, ou date et heure), l'utilisateur peut s'assurer, par exemple, que la valeur initiale n'est pas modifiable s'il s'agit de la date de création d'un document (condition "unique"), ou bien que la date est automatiquement mise à jour s'il s'agit d'une date de dernière modification (condition "permanent").

  • Valeur par défaut : à renseigner. Par exemple, ici, il s'agit de "Document sans titre"
  • traitement à l'import : permet de définir des filtres PHP. Si un webmaster a créé le filtre, indiquez le nom du filtre à cet endroit pour l'appliquer au champ. Quand vous appliquez plusieurs filtres, séparez-les par une barre verticale (ou pipe, |)
  • Balises autorisées : se reporter au bas de la page d'édition du champ pour avoir une correspondance des groupes de balises. Ici, "block" n'est pas utilisé car un titre ne doit normalement pas comporter de paragraphes différents.

[modifier] Bloc "Edition"

  • Type d'affichage dans l'interface. Doit être ensuite défini dans le champ "paramètre pour l'édition" en-dessous. On a plusieurs types d'affichages en fonction des besoins :
    • Modifiable dans l'interface
      • champ de formulaire (par défaut, une ligne)
      • WYSIWYG : (What You See Is What You Get) de nombreux paramètres peuvent être adaptés
    • non modifiable dans l'interface (import possible)
      • ne pas afficher la valeur du champ
      • afficher la valeur du champ
    • valeur du champ non modifiable
      • ne pas afficher le champ
  • Paramètres pour l'édition : sert à définir le type d'affichage spécifié. par exemple, pour l'éditeur WYSIWYG, choisir simple/normal/advanced

[modifier] Bloc Indexation

  • Poids pour le moteur de recherche : définit la profondeur d'indexation par le moteur de recherche interne, de 0 à 8 (indexation maxiamel). Dans le cas du titre, l'indexation est évidemment de 8.

[modifier] Bloc affichage côté site

  • Filtre appliqué systématiquement à ce champ. Il s'agit d'un filtre, comme dans "traitement à l'import". Mais traitement à l'import applique le filtre à l'entrée dans la base de données, tandis que le filtre d'affichage côté site l'applique à la sortie. Par exemple, pour appliquer un filtre antispam pour l'affichage des courriels, il vaut mieux préférer un filtre à l'affichage, afin de préserver l'intégrité du courriel dans la base de données.

[modifier] Commentaire

  • Commentaire : permet de commenter le champ.

[modifier] Les types

Edition des types. Pour commencer, le formulaire d'édition des types est assez similaire au formulaire d'édition des champs. On peut modifier :

  • le nom
  • nom dans l'interface
  • nom dans une autre langue
  • protection ou non

[modifier] Bloc affichage dans l'interface

Image:Édition-d'un-type---textes.png

Le bloc "Affichage dans l'interface" est cependant plus riche. Le formulaire propose en effet :

  • d'associer une icône en la chargeant depuis son disque dur
  • d'afficher à partir d'un niveau prédéfini de complexité de l'interface
  • d'associer à un fichier template
  • enfin, plié/déplié correspond à l'affichage dans l'onglet édition :
    • un type plié correspond par exemple à un numéro de revue : il faut cliquer dessus pour voir les enfants.
    • quand un type est déplié, ses enfants sont visibles directement, sans clic
    • fonctions avancées décrit des types qui seront affichés différemment, comme les documents annexes par exemple, qui sont accessibles dans l'interface par la page d'édition du document parent.

Le type déplié correspond par exemple à la sous-partie. En effet, on peut visualiser les enfants d'une sous-partie sans cliquer dessus, comme le montre cette capture d'écran : Image:Sous-partie-déplié.png

Ici, "Sous-partie" est le titre d'une sous-partie qui a pour parent "N°1" (de type numéro), qui a lui-même pour parent "Modélisation du sous-développement" (de type collection), comme le montre le fil d'ariane. Sous-partie est indiqué comme une "rubriqueaplat" : les documents que ce type contient sont visibles sans clic, en retrait du reste de la page.

[modifier] Bloc Ajout et édition des entités de ce type

Ce bloc définit la façon dont on ajoute des entités correspondant à ce type :

  • nom du fichier template utilisé pour l'édition des entités :
  • mode de création par défaut :
    • formulaire
    • import par servOO
    • Remarque : il ne s'agit que du mode de création par défaut, il est toujours possible de basculer dans l'autre mode en cliquant sur le bouton situé en haut à droite de la page.

Ci-dessous, en ajoutant un article, c'est le mode "import par le servOO qui est choisi. Mais on peut cliquer sur "Ajouter à partir de l'interface", et vice-versa.

Image:Importation-avec-le-servOO.png

  • statut par défaut à la création. Les quatre statuts sont possibles :
    • brouillon
    • prêt à publier
    • publié
    • verrouillé
    • Remarque : la plupart des entités sont créées par défaut avec le statut "prêt à publier", afin d'éviter les publications intempestives de documents non validés. Mais dans le cas d'une utilisation de Lodel comme éditeur de blog, par exemple, on peut modifier le ME pour que chaque billet créé soit "publié".

[modifier] Bloc indexation

  • Indexer les documents de ce type : ne définit que l'indexation par le moteur de recherche de Lodel
  • Document indexable par les moteurs OAI : cette case est à cliquer si l'on souhaite alimenter un dépôt OAI avec ce type.

[modifier] Affichage côté site

  • nom du fichier template : permet d'associer le type à un fichier template pour définir la maquette

[modifier] Publications et documents qui peuvent contenir ce type

Image:Édition-textes.png

Ce bloc définit à quel endroit de l'arborescence on peut ajouter le type créé ou modifié.

Ici, il s'agit du type article. Il peut donc être contenu dans les types suivants :

  • collection
  • numéro de revue
  • rubrique
  • sous-partie

A l'inverse, et pour des raisons de logique, il n'est pas possible de créer un article dans certains types comme :

  • vidéo
  • commentaire
  • flux de syndication...

[modifier] Les styles

Lodel utilise deux niveaux de styles, pour définir les parties d'une entité selon une granularité plus ou moins fine.

[modifier] Styles associés aux champs du ME

L'administrateur Lodel associe à chaque champ du ME un ou plusieurs style(s). Ce style sert à repérer dans le document source issu d'un traitement de texte les différents blocs correspondant aux différents champs du ME. Le rédacteur, qui importe les documents dans Lodel, aura la charge d'utiliser de manière unique chacun de ces styles dans les documents source (par exemple, un titre de document, un bloc de texte, un bloc de mots-clés, etc.). Ainsi, un bloc stylé en "titre" sera reconnu par Lodel comme le champ "titre".

[modifier] Styles internes

Par ailleurs, il est possible de définir des styles dits "internes", qui servent à identifier les différents éléments à l'intérieur d'un bloc de texte (par exemple les niveaux de titre dans le corps du texte).

Ces styles permettent de repérer la structure interne des blocs de texte : ils correspondent aux styles de paragraphe dans un traitement de texte.

Ces styles de paragraphe sont définis à partir de l'onglet "administration". Cliquer sur "Styles internes" :

Image:Styles internes.png