L'ajout de la métadonnée concernée dans le module ori-oai-search concerne plusieurs étapes :
Recherche avancée
Nous pouvons voir dans le fichier *\[ORI_HOME\]/src/ori-oai-search-svn/conf/search/default_exemple-complet/config.xml* le bloc suivant : Wiki Markup
Code Block | ||||
---|---|---|---|---|
| ||||
<!-- 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 *\[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*. Wiki Markup
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.
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 *\[ORI_HOME\]/src/ori-oai-search-svn/*{*}conf/search/default_exemple-complet{*}*/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 *\[ORI_HOME\]/src/ori-oai-search-svn/*{*}conf/search/default_exemple-complet{*}*/i18n/custom_XX.properties* Wiki Markup
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.
Dans le fichier *\[ORI_HOME\]/src/ori-oai-search-svn/*{*}conf/search/default_exemple-complet{*}*/config.xml*, il faut ajouter le bloc suivant : Wiki Markup
Code Block | ||||
---|---|---|---|---|
| ||||
<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> |
Il 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 : Wiki Markup
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 | ||||
---|---|---|---|---|
| ||||
<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/webapp/WEB-INF/xsl*.unmigrated-wiki-markup 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 | ||||
---|---|---|---|---|
| ||||
<!-- 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> |
Enregistrez 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* : Wiki Markup
Panel |
---|
xsl.lom.semanticDensity=Densit\u00E9 s\u00E9 mantique |
Il faut maintenant surcharger le fichier notice.jsp.
Copiez-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*. Wiki Markup
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 :
Panel |
---|
\[ORI_HOME\]/tomcat-search/bin/shutdown.sh |
Redéployez l'application :
Panel | |
---|---|
|
Relancez le serveur tomcat :
Panel | |
---|---|
|
Et accédez aux interfaces de recherche pour visualiser les modifications.