Ajouter une classification dans une fiche SupLOMFR

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 $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

  • No labels