Objet
Montrer les différentes phases nécessaires à l'ajout d'un sytème de classification dans le formulaire complet SupLOMFR.
Cette page s'appuiera sur un example concret: l'ajout du système de classification "Université européenne de Bretagne" . Cette classification "UEB Numérique Contenus" se décline en axes thématiques (ENVAM, Santé, Lettre, etc...).
Il est important de noter que l'ajout de cette classification respecte le format SupLOMFR: il ne sera pas nécessaire de modifier le prototype de saisie, ni le patron de fiche.
Cet exemple est très simple à mettre en oeuvre.
Point de départ
Nous allons nous inspirer de la classification "Universités Numériques Thématiques" pour créer notre classification "Université européenne de Bretagne".
- Notations utilisées pour les chemins
$EDITOR-HOME = ori-oai-md-editorWEB-INF/resources/forms/ori-md-editor/
$VOCAB_HOME = ori-oai-vocabulary/conf/properties/
- Formulaire complet SupLOMFR
Contenu configuré dans $EDITOR-HOME/lomfr-sup-full/.
Marche à suivre
Créer le vocabulaire associé à la classification
Nous nommerons le fichier de ce vocabulaire mdeditor_unr_taxonomie.xml.
Déposer le fichier, selon le cas :
- dans $VOCAB_HOME/ori_vocabularies/override/ (si éditeur connecté à ori-oai-vocabulary) ;
- dans $EDITOR-HOME/common/xml-vocab-local/ (si utilisation de l'éditeur seul).
Extrait de la classification à deux niveaux (activité,axe) :
<?xml version="1.0" encoding="UTF-8"?> <vdex:vdex xmlns:vdex="http://www.imsglobal.org/xsd/imsvdex_v1p0" xmlns:orioai="http://www.ori-oai.org/static/xsd/orioaivocab" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/imsvdex_v1p0 http://www.imsglobal.org/xsd/imsvdex_v1p0.xsd http://www.ori-oai.org/static/xsd/orioaivocab http://www.ori-oai.org/static/xsd/orioaivocab.xsd" profileType="hierarchicalTokenTerms"> <vdex:vocabName> <vdex:langstring language="fr">Classification UNR</vdex:langstring> </vdex:vocabName> <vdex:vocabIdentifier isRegistered="false">classification_unr</vdex:vocabIdentifier> <vdex:term validIndex="false"> <vdex:termIdentifier>UEBN</vdex:termIdentifier> <vdex:caption> <vdex:langstring language="fr">UEB NUMERIQUE CONTENUS</vdex:langstring> </vdex:caption> <vdex:term> <vdex:termIdentifier>UEBN-Management</vdex:termIdentifier> <vdex:caption> <vdex:langstring language="fr">Management d'entreprise</vdex:langstring> </vdex:caption> </vdex:term> ... </vdex:term> </vdex:vdex>
Modifier la liste des classifications
Pour cela, mettre à jour le fichier common_lom_clas_discipline_source.xml, et le copier selon le cas :
- dans $VOCAB_HOME/ori_vocabularies/override (pour l'éditeur connecté à ori-oai-vocabulary)
(voir Publication de vocabulaires statiques).
- dans $EDITOR-HOME/common/xml-vocab-local/ (pour une utilisation de l'éditeur seul)
Y ajouter les lignes suivantes :
<vdex:term> <vdex:termIdentifier>Université européenne de Bretagne 2010 http://www.ueb.eu</vdex:termIdentifier> <vdex:caption> <vdex:langstring language="fr">Université européenne de Bretagne 2010 http://www.ueb.eu</vdex:langstring> </vdex:caption> </vdex:term>
Créer le nouveau dialogue
Il s'agit de personnaliser la boîte de dialogue proposée quand on clique sur 'Recherche de taxonomie', avec la classification choisie.
- Copier $EDITOR-HOME*/lom-full/form/dialog-UNT-search.xml* dans $EDITOR-HOME/lom-full/form/dialog-UNR-search.xml.
- Modfier toutes les chaines de caractères "UNT" par "UNR"
- Modfier toutes les chaines de caractères "unt_taxonomie" par "unr_taxonomie"
Ajouter la référence à la classification et au dialogue dans le formulaire :
Dans $EDITOR-HOME*/lomfr-sup-full/form/form.xhtml*
Ajouter linstance xforms "unr_taxonomie" (après la déclaration de l'instance "unt_taxomonie")
<xforms:instance id="unr_taxonomie" src="/fr/service/custom/ori-md-editor/oriGetVocab?vocab=mdeditor_unr_taxonomie" xxforms:readonly="true" xxforms:cache="true"/>
et en fin de fichier, la déclaration du dialogue:
<xi:include href="oxf:/forms/ori-md-editor/lom-full/form/dialog-UNR-search.xml"/>
Afficher dans le formulaire la taxonomie et le choix de l'utilisateur :
Affichage dans le formulaire de la taxonomie et prise en compte du choix de l'utilisateur:
Dans $EDITOR-HOME*/lomfr-full/classification.xml*
Ajout d'un bloc <xforms:group> (s'inspirer du cas "Univerisités Numériques Thématiques")
<xforms:group ref=".[starts-with(../lom:source/lom:string, ' Université européenne de Bretagne')]"> <xforms:trigger appearance="minimal"> <xforms:label> <img src="/forms/ori-md-editor/media/images/list.gif"/> <span> <xforms:output value="$fr-resources/ori-taxonomy-search-title"/></span> </xforms:label> <xforms:action ev:event="DOMActivate"> <\!-\- Remember position of the taxon to edit \--> <xforms:setvalue ref="xxforms:instance('taxonomy-search')/taxon-position" value="count(xxforms:repeat-current()/preceding::lom:taxon) + 1"/> <\!-\- Open the taxonomy search dialog \--> <xxforms:show dialog="search-UNR-dialog"/> </xforms:action> </xforms:trigger> <xforms:output value="lom:id"> <widget:labels instance="i18n_lom" termIdentifier="9.2.2.1"/> </xforms:output> <xforms:group ref="lom:entry"> <xforms:repeat nodeset="lom:string"> <xforms:output value="."> <widget:labels instance="i18n_lom" termIdentifier="9.2.2.2"/> </xforms:output> </xforms:repeat> </xforms:group> </xforms:group>
Configurer l'ensemble ("set")
Pour ajouter un l'ensemble et devenir ainsi moissonnable , il est nécessaire d'ajouter un "set" dans le module repository: lire l'utilisation et la configuration avancée .
Dans notre cas, le set "setUnr" est défini comme suit:
<bean id="setUnr" class="org.orioai.repository.domain.model.set.OaiSetInfos" init-method="init"> <property name="vocabularyId" value="mdeditor_unr_taxonomie"/> <property name="rootTag" value="vdex"/> <property name="termXpath" value="//vdex:term"/> <property name="valueXpath" value=".//vdex:termIdentifier"/> <property name="setSpecXpath" value="vdex:termIdentifier"/> <property name="setNameXpath" value="vdex:caption/vdex:langstring[@language = 'fr']"/> <property name="vocabularyNameXpath" value="//vdex:vocabName/vdex:langstring[@language = 'fr']"/> <property name="vocabularyNameDefault" value="UNR"/> <property name="xpathSources"> <map> <entry> <key> <value>http://ltsc.ieee.org/xsd/LOM</value> </key> <bean class="org.orioai.repository.domain.model.set.OaiSetSourceInfos"> <property name="xpath"> <list> <value>//lom:classification/lom:taxonPath[ends-with(lom:source/lom:string,'http://www.ueb.eu')]/lom:taxon/lom:id</value> </list> </property> </bean> </entry> </map> </property> </bean>
En fin, il est nécessaire d'ajouter l'index de moissonnage dans le module indexing : lire cette page .
L'index de moissonnage correspond au xpath de l'exemple précédent :
//lom:classification/lom:taxonPath\[ends-with(lom:source/lom:string,'http://www.ueb.eu')\]/lom:taxon/lom:id
Les fichiers :
Les fichiers de cet exemple sont téléchargeables ici :La contribution UEB Numérique Contenus