Url Link

JCMS 5.5 : Utilisation des catégories contextuelles

In brief...
Le portail de JCMS 5.5 permet une navigation à travers des catégories. La notion de catégories contextuelles permet un affinement du portail sans impacter cette navigation. Cet article décrit l'usage des catégories contexuelles au travers d'un exemple de navigation croisée.
Subject Portal
Products JCMS 5.5
JCMS 5.6
Published 7/19/06
Writer Jean-Phillipe Encausse

1. Deux cas d'usage

Les catégories contextuelles peuvent être utilisées pour deux usages differents:

Préserver le portail de consultation d'une publication

Dans JCMS, les publications sont visualisées en front-office dans un portail. Le choix du portail est dépendant des catégories de la publication. Si plusieurs portails sont disponibles le choix est alors arbitraire. Les catégories contextuelle servent à lever cette ambiguité. Cela permet, par exemple, de préserver le portail courant lorsqu'on visualise une publication.

Affiner suivant plusieurs critères le portail de JCMS

La navigation dans le front office de JCMS est régie par les catégories. Les portlets du portail peuvent s'affiner en fonction de cette navigation. Mais il est parfois nécessaire d'affiner le portail en fonction de plusieurs critères. Les catégories contextuelle répondent a ce besoin tout en préservant la mécanique de navigation.

2. Mise en oeuvre

La navigation dans le portail de JCMS se fait à l'aide des catégories présentées par les portlets de navigation. Quand une catégorie est spécifiée, les portlets du portail peuvent s'affiner en fonction. L'objectif de cette section est de présenter étape par étape la mise en place de quatre portlets d'affinement. Les catégories de ces portlets permettront d'affiner le portail (de manière transverse à la navigation). 

2.1 Création d'une arborescence de catégories

La première étape consiste à créer une arborescence de catégories dédiée à l'affinement de l'interface. Voici un exemple de plan de classement :

Période Evènement Lieu Thème
2000-2001 Séminaire Etats-Unis Sécurité
2001-2002 Réunion de travail France CRM
2002-2003 Conférence Irlande ERP
2003-2004 Formation Angleterre KM
2004-2005 Espagne AJAX
Allemagne

Voici le résutat dans JCMS :

Editeur de catégories

Un portail est associé à la racine des catégories contextuelles pour simplifier la démonstration.

Astuce: Pour créer rapidement un ensemble de catégories via l'interface:
  1. Editer une première fois une catégorie .
  2. Taper 2 fois sur la touche "Entrée" :
    1. Le premier "Entrée" enregistre la catégorie.
    2. Le deuxième "Entrée" réouvre l'interface d'ajout de catégorie.

 

2.2 Création des Portlets d'affinement

Créer 4 Portlets de Navigation avec la valeur "d'affinement" pour l'option "comportement". Cette option indique au gabarit d'affichage que ces catégories seront des catégories contextuelles.

Edition d'une portlet de navigation

Voici le résutat dans le portail :

Portlet de Naivgation avec catégories contextuelles

2.3 Création de la Portlet de Navigation

Créer une Portlet de Navigation. Le gabarit d'affichage choisi est "Menu déroulant". L'option "comportement" est maintenant "Navigation".

Voici le résultat dans le portail :

Portlet de Navigation standard

2.4 Création de la Portlet Requête/Itération

2.4.1 Contenus de test

Créer des contenus de test qui seront visualisables par la portlet requête/itération. Ces contenus doivent être catégorisés avec des catégories contextuelles.

2.4.2 Portlet Requête/Itération

Créer une portlet requête/itération. Cette portlet doit affiner les resultats de requêtes sur les catégories contextuelles et propager les catégories contextuelles.

Edition d'une Porlet Requête/Itération

Voici le résultat dans le portail :

Portlet Requête/Itération avec affinement selon les catégories contextuelles

2.5 Navigation

2.5.1 Navigation standard

Cliquer sur les catégories de la portlet de navigation. Le paramètre de requête "id" est mis à jour et le portail se rafraichit en fonction. Comme l'option "Affiner sur la catégorie courante" de la portlet requête/itération est positionnée, celle ci est affinée automatiquement.

Navigation sur la catégorie "Réunion de travail"

2.5.2 Affinement de la navigation

Cliquer sur les catégories des portlets d'affinement. Le paramètre "cid" est mis à jour et le portail se rafraichit en fonction. Il peut y avoir plusieurs catégories d'affinement. Comme l'option "Affiner sur la catégorie courante" de la portlet requête/itération est positionnée, celle ci est affinée automatiquement.

Affinement sur la catégorie "France"

Quand on clique deux fois sur une catégorie, le paramètre "cid" est mis puis enlevé. Il est possible de sélectionner plusieurs catégories dans une même portlet de raffinement. C'est un choix d'implémentation qui peut être modifié.

2.6 Visualisation d'une publication

Cliquer sur les catégories de la portlet de navigation, puis visualiser une publication. La publication est affichée avec son gabarit d'affichage. Comme l'option "Propager les catégories de contexte" est positionnée, la catégorie courante précédente est ajoutée en catégorie contextuelle. La mécanique du portail tient compte de cette catégorie contextuelle pour déterminer le portail à utiliser si plusieurs portails sont possibles, cette option permet de lever l'ambiguité. 

Affichage de la publication "Article E" dans la catégorie "Séminaire"

3. Fonctionnement interne

3.1 Le paramètre "cid"

Les catégories contextuelles ne fonctionnent que sur le front-office. Toutes la mécanique repose uniquement sur la gestion d'un nouveau paramètre de l'URL qui est "cid". Ce paramètre peut être présent en plusieurs exemplaires. Il représente l'identifiant d'une catégorie.

3.2 API

La classe com.jalios.jcms.portlet.PortalManager propose des méthodes utilitaires permettant la manipulation des catégories contextuelles. La méthode PortalManager.getUrlWithUpdateCtxCategories permet de construire une URL de navigation en mettant à jour les catégories contextuelles. Cette méthode est utilisée par la majorité des gabarits d'affichage (capables de présenter des catégories contextuelles) de la portlet de Navigation (Portlet Navigate).

<% int cpt = 0; %>
<jalios:foreach collection='<%= navigateSet %>' type='Category' name='itCategory'>
  <jalios:if predicate='<%= itCategory.canBeReadBy(loggedMember , true, true) %>'>
    <jalios:if predicate='<%= ++cpt > 1 %>'> | </jalios:if>
    <a href='<%= PortalManager.getUrlWithUpdateCtxCategories(itCategory , ctxCategories, request , !box.getNavigatePortlet()) %>'><%= itCategory.getName(userLang) %></a>
  </jalios:if>
</jalios:foreach>

Pour obtenir la liste des catégories contextuelles, il faut appeler la méthode getCtxCategories() de la variable jcmsContext (disponible dans toutes les JSPs).

 


Member Discussions

Login   Home   fr en
JALIOS SA - SIREN 440 126 035