Page History

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Nous pouvons voir dans le fichier [ORIPATH_CUSTOM_HOMECONFIG]/src/ori-oai-search/contribs-svn/conf/search/defaultvotre_exemple-completcontrib/config.xml le bloc suivant :

Code Block
xml
xml

<!-- LOM -->
<search_menu key="lom">

    <!-- Recherche avancée -->
    <advanced_search key="advanced" file="lom_advanced.xml">
      ...
     </advanced_search>

</search_menu>

Ceci nous indique que la définition du formulaire de recherche avancée de l'onglet « Pédagogie » (LOM) se trouve dans le fichier [ORIPATH_CUSTOM_HOMECONFIG]/src/ori-oai-search/contribs-svn/conf/search/defaultvotre_exemple-completcontrib/advanced/lom_advanced.xml. En effet, tous les fichiers de configuration de recherche avancée de type advanced_search d'une contribution "C" se trouvent dans le dossier [ORIPATH_CUSTOM_HOMECONFIG]/src/ori-oai-search/contribs-svn/conf/search/C/advanced.

Ouvrez en mode édition ce fichier. On peut y voir que tous les champs de recherche <field> sont regroupés dans différents groupes <group>. Ces groupes sont distingués par différentes zones dans l'interface de recherche.

Le champ de recherche que nous voulons ajouter correspond à un critère pédagogique. Il faut donc ajouter un bloc <field> dans le groupe « peda » :

Code Block
xml
xml

<field id="peda_semanticDensity" format="text" vocabularyId="common_lom_educ_semantic_density">
     <metadata>//lom:educational/lom:semanticDensity/lom:value</<metadata>lom.educational.semanticDensity</metadata>
</field>
  • id est l'identifiant de ce champ de recherche
  • vocabularyId permet de dire sur quel vocabulaire se base la construction de la liste déroulante dans l'interface de recherche
  • metadata correspond ici au xpath de à la métadonnée concernée. A noter qu'il peut y avoir plusieurs balises metadata afin qu'un champ de recherche corresponde à plusieurs métadonnées.

Une fois cette configuration ajoutée, il faut définir le libellé du champ de recherche. Tous les libellés présents par défaut se trouvent dans les fichiers [ORIPATH_CUSTOM_HOMECONFIG]/src/ori-oai-search/contribs-svn/conf/search/defaultvotre_exemple-completcontrib/i18n/forms_XX.properties où XX correspond aux différents codes de langues supportés dans votre application. Pour modifier ou ajouter des libellés, il est conseillé d'éditer les fichiers [ORIPATH_CUSTOM_HOMECONFIG]/src/ori-oai-search/contribs-svn/conf/search/defaultvotre_exemple-completcontrib/i18n/custom_XX.properties

...

On ajoutera dans cet exemple l'affichage de ce résultat uniquement depuis la Recherche avancée du menu de recherche Multi-formatspour le <result_fields> lom. La même procédure devra être appliquée pour afficher cette métadonnée dans tous les autres modes de recherches.

Dans le fichier [ORIPATH_CUSTOM_HOMECONFIG]/src/ori-oai-search/contribs-svn/conf/search/defaultvotre_exemple-completcontrib/config.xml, il faut ajouter le bloc suivant :

Code Block
xml
xml

<search<result_menufields keyid="alllom">

  <!-- Recherche avancée -->
 <advanced_search key="advanced" file="all_advanced.xml">

   <result_fields> ...>
                 ...
     <result_field key="semanticDensity" format="vocabulary:common_lom_educ_semantic_density" highlight="false">
       <metadata>//lom:educational/lom:semanticDensity/lom:value<<metadata>lom.educational.semanticDensity</metadata>
     </result_field>

   </result_fields>
         ...
  </advanced_search>

</search_menu>

Il faut alors indiquer le libellé de ce champ dans l'interface des résultats dans les fichiers [ORIPATH_CUSTOM_HOMECONFIG]/src/ori-oai-search-svn/conf/search/default_exemple-complet/i18n/custom_XX.properties. Pour information, les libellés définis par défaut pour les champs de résultat se trouvent dans [ORI_HOME]/src/ori-oai-search-svn/conf/search/default_exemple-complet/contribs-search/votre_contrib/i18n/menus_XX.properties Comme nous avons ajouté la métadonnée semanticDensity dans les résultats de la recherche avancée advanced du menu de recherche all <result_fields> lom, il faut ajouter l'élément suivant :

Panel

menu.result.all.advancedlom.semanticDensity=Densit\u00E9 s\u00E9mantique
menu.result.lom.semanticDensity.description=

Affichage dans la notice

L'affichage et le rendu des fiches de métadonnées s'effectuent par une transformation XSLT commandée depuis la JSP [ORI_HOME]/src/ori-oai-search-svn/src/main/webapp/WEB-INF/stylesheetsjsp/notice/notice.jsp. Cette JSP fait le lien entre la fiche de métadonnée au format XML et une feuille de transformation XSL. Aussi, les fichiers de message multilingues étant gérés uniquement au niveau des JSP, notice.jsp fournit en paramètre à la XSL tous les libellés à afficher dans le rendu. La transformation XSLT nécessite une XSL spécifique à chaque format de métadonnée. Cette XSL est spécifiée pour chaque format dans l'attribut xsl de la balise config/notice_formats/format du fichier de configuration config.xml.

Dans le cas du LOM pour notre cas, nous avons la configuration suivante :

Code Block
xml
xml

<notice_formats>
       <format formatMetadataValue="..." prefix="lom" xsl="lom.xsl" headXsl="lom.xsl">
             ...
       </format>
<notice_formats>

Cela signifie que nous utilisons la XSL lom.xsl qui se trouve dans le dossier [ORI_HOME]/src/ori-oai-search-svn/src/main/webapp/WEB-INF/xsl.

Dans notre exemple, nous n'allons pas modifier la XSL fournie dans les sources, mais surcharger celle-ci en la recopiant dans notre contribution. Copiez donc le fichier [ORI_HOME]/src/ori-oai-search-svn/src/main/webapp/WEB-INF/xsl/lom.xsl vers [ORIPATH_CUSTOM_HOMECONFIG]/src/ori-oai-search/contribs-svn/conf/search/defaultvotre_exemple-completcontrib/xsl/lom.xsl

Editez Éditez le fichier que vous venez de coller.

La première étape consiste à ajouter en paramètre d'entrée du fichier l'appel à un paramètre fourni par la JSP au moment de la transformation XSLT. Ce paramètre correspond au libellé de la métadonnée qui sera affiché dans l'interface. A la suite des autres paramètres, ajoutez :

Code Block
xml
xml
<xsl:param name="xsl.lom.semanticDensity"/>
<xsl:param name="xsl.lom.semanticDensity.description"/>

Il faut maintenant faire appel à ce libellé et afficher la valeur de la métadonnée. Ajoutez le bloc suivant juste après le bloc similaire qui concerne la variable peda_interactivityLevel :

Code Block
xml
xml

<!-- Densite semantique -->
<xsl:call-template name="print_template">
	<xsl:with-param name="element" select="//lom:educational/lom:semanticDensity/lom:value"/>
	<xsl:with-param name="label" select="$xsl.lom.semanticDensity"/>
</xsl:call-template>

et modifier le saut de ligne suivant:

Code Block
xmlxml

<!-- Saut de ligne -->
<xsl:call-template name="print_br">
	<xsl:with-param name="previous1labelDescription" select="count(//lom:educational/lom:interactivityType/lom:value) > 0$xsl.lom.semanticDensity.description"/>
	<xsl:with-param name="previous2showLink" select="count(//lom:educational/lom:interactivityLevel/lom:value) > 0"/>
	<xsl:with-param name="previous3" select="count(//lom:educational/lom:semanticDensity/lom:value) > 0"$ori-oai-show-links"/>
</xsl:call-template>

Enregistrez ce fichier. Il faut alors indiquer le libellé de ce champ dans la notice dans les fichiers [ORIPATH_CUSTOM_HOMECONFIG]/src/ori-oai-search/contribs-svn/conf/search/defaultvotre_exemple-completcontrib/i18n/custom_XX.properties :

Panel

xsl.lom.semanticDensity=Densit\u00E9 s\u00E9 mantique

Il faut maintenant surcharger le fichier notice.jsp.

u00E9mantique
xsl.lom.semanticDensity.description=

Dans le cas d'ajout de nouveaux messages, il faut les définir dans le fichier [PATH_CUSTOM_CONFIG]/Copiez-coller le fichier [ORI_HOME]/src/ori-oai-search/contribs-svnsearch/webapp/WEB-INF/stylesheetsvotre_contrib/jsp/notice/notice.jsp vers [ORI_HOME]/src/ori-oai-search-svn/conf/search/default_exemple-complet/stylesheets/notice/notice.jsp.Ensuite, éditez -content-i18n-custom.jsp
Éditez ce fichier afin de donner le paramètre lié aux libellés à la XSL comme ceci à la suite des autres paramètres:

Code Block
xml
xml

<x:param name="xsl.lom.semanticDensity">
     <fmt><fmt:message key="xsl.lom.semanticDensity"/>
<></x:param>

Enregistrez ce fichier. A cette étape, la valeur qui sera affichée dans la notice correspond à la valeur réelle du champ dans la fiche de métadonnées LOM. Afin de « traduire » cette valeur dans un terme compréhensible par tous, il faut paramétrer une traduction de cette valeur au moment de l'affichage de la notice en utilisant le vocabulaire défini au préalable common_lom_educ_semantic_density. Pour cela, il faut éditer le fichier config.xml et intervenir dans le bloc config/notice_formats/format et ajouter une balise metadata comme suit :

Code Block
xmlxml

<notice_formats>
       <format formatMetadataValue="..." prefix="lom" xsl="lom1.xsl" headXsl="lom.xsl">
             ...
             <metadata format="vocabulary:common_lom_educ_semantic_density">
                  //lom:educational/lom:semanticDensity/lom:value
             </metadata>
       </format>
<notice_formats><x:param name="xsl.lom.semanticDensity.description"><fmt:message key="xsl.lom.semanticDensity.description"/></x:param>

Enregistrez ce fichier.

Mise à jour des modifications

...