Page History

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

L'ajout de la métadonnée concernée dans le module ori-oai-search concerne plusieurs étapes :

Recherche avancée

Wiki MarkupNous pouvons voir dans le fichier *\[ORI_HOME\]/src/ori-oai-search-svn/conf/search/default_exemple-complet/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>

Wiki MarkupCeci nous indique que la définition du formulaire de recherche avancée de l'onglet « Pédagogie » (LOM) se trouve dans le fichier *\[ORI_HOME\]/src/ori-oai-search-svn/*{*}conf/search/default_exemple-complet{*}*/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 *\[ORI_HOME\]/src/ori-oai-search-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.

...

  • 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.

Wiki MarkupUne 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 *\[ORI_HOME\]/src/ori-oai-search-svn/*{*}conf/search/default_exemple-complet{*}*/i18n/forms_XX.properties* 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 *\[ORI_HOME\]/src/ori-oai-search-svn/*{*}conf/search/default_exemple-complet{*}*/i18n/custom_XX.properties*

Comme nous nous intéressons ici à la recherche avancée ayant comme clef « advanced » qui elle-même se trouve dans un menu de recherche plus global « lom », il faut ajouter les entrées suivantes dans les fichiers de définition des libellés :

...

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

Wiki MarkupDans le fichier *\[ORI_HOME\]/src/ori-oai-search-svn/*{*}conf/search/default_exemple-complet{*}*/config.xml*, il faut ajouter le bloc suivant :

Code Block
xml
xml
<search_menu key="all">

  <!-- 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>
     </result_field>

   </result_fields>
         ...
  </advanced_search>

</search_menu>

Wiki MarkupIl faut alors indiquer le libellé de ce champ dans l'interface des résultats dans les fichiers *\[ORI_HOME\]/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/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*, il faut ajouter l'élément suivant :

Panel

menu.result.all.advanced.semanticDensity=Densit\u00E9 s\u00E9mantique

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/webapp/WEB-INF/stylesheets/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>

Wiki MarkupCela signifie que nous utilisons la XSL *lom.xsl* qui se trouve dans le dossier *\[ORI_HOME\]/src/ori-oai-search-svn/webapp/WEB-INF/xsl*.unmigrated-wiki-markup

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/webapp/WEB-INF/xsl/lom.xsl* vers *\[ORI_HOME\]/src/ori-oai-search-svn/*{*}conf/search/default_exemple-complet/xsl/lom.xsl*

Editez le fichier que vous venez de coller.

...

Code Block
xml
xml
<!-- Saut de ligne -->
<xsl:call-template name="print_br">
	<xsl:with-param name="previous1" select="count(//lom:educational/lom:interactivityType/lom:value) > 0"/>
	<xsl:with-param name="previous2" select="count(//lom:educational/lom:interactivityLevel/lom:value) > 0"/>
	<xsl:with-param name="previous3" select="count(//lom:educational/lom:semanticDensity/lom:value) > 0"/>
</xsl:call-template>

Wiki MarkupEnregistrez ce fichier. Il faut alors indiquer le libellé de ce champ dans la notice dans les fichiers *\[ORI_HOME\]/src/ori-oai-search-svn/*{*}conf/search/default_exemple-complet/i18n/custom{*}*\_XX.properties* :

Panel

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

Il faut maintenant surcharger le fichier notice.jsp.

Wiki MarkupCopiez-coller le fichier *\[ORI_HOME\]/src/ori-oai-search-svn/webapp/WEB-INF/stylesheets/notice/notice.jsp* vers *\[ORI_HOME\]/src/ori-oai-search-svn/*{*}conf/search/default_exemple-complet/stylesheets/notice/notice.jsp*.

Ensuite, éditez ce fichier afin de donner le paramètre lié aux libellés à la XSL comme ceci à la suite des autres paramètres:

...

Arrêtez le serveur tomcat :

unmigrated-wiki-markup
Panel

\[ORI_HOME\]/tomcat-search/bin/shutdown.sh

Redéployez l'application :

cd \ [ORI_HOME\]/src/ori-oai-quick-install-svn
ant all-search

Panel

Wiki Markup

Relancez le serveur tomcat :

\[ORI_HOME\]/tomcat-search/bin/startup.sh

Panel

Wiki Markup

Et accédez aux interfaces de recherche pour visualiser les modifications.