La navigation par catégories dans les sites Alfresco Share 4.0

Il y a quelques mois, je présentais un moyen de rendre accessible la navigation par catégories dans les sites Share : Mettre en place la navigation par catégories dans les sites de Share 3.4d.
Ce billet est encore régulièrement consulté et il est temps de l’actualisé pour Alfresco 4.0.

L’ensemble des concepts présentés dans le billet 3.4d peuvent être réutilisés pour cette mise à jour, mais il serait dommage de passer à côté des apports de la version 4.

Les changements pour Share 4.0

L’une des grandes nouveautés de Share 4.0 est la capacité à mettre en place des extensions activables à la demande. J’ai présenté quelques exemples d’utilisation de ces extensions dans les billets : Customiser Share 4.0.c pour nos numéros de versions personnalisés, Souhaitez une bonne année à vos utilisateurs Alfresco (1/2), Souhaitez une bonne année à vos utilisateurs Alfresco (2/2) ou encore Pré-configurer les modules d’extension Share 4.0.

Cette capacité d’extension est particulièrement utile dans notre cas elle va nous permettre de limiter les modifications des fichiers de Share.

Notre besoin est ici de référencer le composant categories (défini dans repository.xml) dans la page servant à l’affichage de la « Document Library » (espace documentaire) de Share. En version 3.4d, il est nécessaire de surcharger le fichier documentlibrary.xml. En version 4.0, nous pouvons définir un sous-composant venant compléter un composant déjà défini sur la page.

L’identification du composant adéquat passe par l’utilisation de SurfBug. Pour un mode d’emploi illustré en français, voir mon billet .

Lorsque l’on s’intéresse au panneau latéral des espaces documentaires de Share, on constate que trois composants sont disponibles :

  • Documents
  • Fichiers
  • Tags

Le choix du composant se fait en fonction de la position où l’on souhaite afficher notre arborescence de catégories. Pour ma part, je souhaite qu’elle soit affichée sous les tags; je vais donc créer un sous-composant au composant tags.

La création du sous-composant

L’enregistrement de nos composants pour en faire des extensions Share nécessite l’écriture d’un fichier XML situé dans une arborescence alfresco/site-data/extensions.
Dans ce fichier, je définis un module puis référence le composant que je souhaite étendre en utilisant les informations que m’a fourni SurfBug :
<region-id>tags</region-id>
<source-id>documentlibrary</source-id>
<scope>template</scope>

Puis je définis le nouveau sous-composant :
<sub-component id="categories">
  <url>/components/documentlibrary/categories</url>
</sub-component>

Il suffit d’utiliser un id autre que « default » (sans quoi le composant est remplacé) et de référencer l’url du sous-composant. J’ai utilisé ici l’URL du composant « categories » dont on trouve la définition dans le fichier repository.xml.

Et c’est tout ! Rien de plus à modifier pour Share. C’est quand même bien pratique ce concept d’extension ;-)

La définition complète de l’extension est disponible dans ce fichier : site-categorie-navigation-extension.xml.

Les modifications d’Alfresco

Comme pour la version 3.4d, il va être nécessaire de modifier le fichier filters.lib.js.

On se rendra toutefois vite compte que ce fichier et le webscript qui l’inclut (cf. doclist.get)ne sont plus situés dans le dossier alfresco/templates/webscripts/org/alfresco/slinghsot/documentlibrary mais alfresco/templates/webscripts/org/alfresco/slinghsot/documentlibrary-v2. Ca ne change malgré tout pas grand chose au principe.

La modification du fichier filters.lib.js va fortement ressembler à ce que nous avons fait pour la version 3.4d : nous reprenons pour le « cas » categories ce qui est fait pour tags.
La ligne 221 :
filterParams.query = "+PATH:\"/cm:generalclassifiable" + Filters.iso9075EncodePath(filterData) + "/member\"";
est remplacée par les deux lignes :
filterQuery = this.constructPathQuery(parsedArgs);
filterParams.query = filterQuery + "+PATH:\"/cm:generalclassifiable" + Filters.iso9075EncodePath(filterData) + "/member\"";

filterQuery a pour objectif de construire la requête permettant de limiter le filtre sur les catégories au site courant.

Le résultat final

Au final, nous obtenons de nouveaux modules compatibles avec la version 4.0 d’Alfresco et Alfresco Share :

Une fois ces modules installés et Alfresco (+ Share) redémarré, il nous reste à activer l’extension pour Share avec la page :
Activation de notre nouvelle extension

Lorsque nous entrons dans l’espace documentaire d’un site, nous disposons maintenant de la navigation par catégories :

Il est maintenant possible de naviguer par catégories dans les sites

Cette entrée a été publiée dans Alfresco, avec comme mot(s)-clef(s) , , , , . Vous pouvez la mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Protected by WP Anti Spam