Partie 2: Traduction des filtres de métadonnées gérées

Partie 2: Traduction des filtres de métadonnées gérées


Cet article fait partie d’une série de quatre articles traitant de la traduction des filtres de raffinement dans le composants « Refinement Panel » de Sharepoint 2010.


Dans mon précédent article, j’ai expliqué les différents moyens pour modifier les filtres générés par le composant Refinement Panel. A présent, je vais vous montrer comment il est possible de créer un filtre personnalisé pour prendre en compte la traduction des métadonnées gérées dans les filtres de recherche générés par ce composant.

Par défaut le XML de configuration pour créer une categorie de filtres basés sur des métadonnées gérées est le suivant:

Il utilise le générateur de filtre TaxnomyFilterGenerator par défaut et la managed property de recherche ows_MetadataFacetInfo . Nous devons donc dériver cette classe pour modifier son comportement.

Voici le code permettant la traduction. Bien évidemment, il faut que vous ayez au préalable effectué la traduction dans votre magasin de termes pour que cela fonctionne ;).

Ici, nous modifions les données brutes récupérées de refinedData. En effet, la classe TaxonomyFilterGenerator expose une méthode très pratique qui permet d’extraire les propriétés d’une métadonnée gérée (TermID, TermStore, etc…). Il’agit de la méthode ParseMetadataProperty. A partir de là, il est très facile de récupérer la valeur de la métadonnée pour la langue courante grâce au TermId et la méthode GetDefaultLabel(). A noter que pour la traduction du nom de la catégorie, je me base sur le nom de la colonne de la collection de sites (chose qui peut être problématique dans certains cas, j’en convient).

Une fois toutes les valeurs traduites, on redonne la main à la méthode originale pour qu’il nous génère la sortie XML. Et voilà!

Pour utiliser votre générateur de filtres, il vous suffit ensuite de modifier le XML de configuration du WebPart Search Refinement Panel, avec le nom de votre classe, comme ceci:

Dans le prochain article, j’expliquerai comment traduire les métadonnées natives de SharePoint dans ce panneau, et une chose est sûre, c’est que vous allez être surpris de la manière dont SharePoint les gère ;).


+ There are no comments

Add yours