JCMS 7.1 : les principales nouveautés et les modules associés

1 Espaces Collaboratifs

1.1 Les calendriers

Le module Calendrier permet d’intégrer des événements issus de calendriers externes, tels que Google Calendar ou Yahoo ! Calendar, ou de n’importe quel système produisant des calendriers au format iCal / ICS. Un administrateur peut ajouter des calendriers pour tout le site ; un administrateur d’espace peut en ajouter pour son espace ; enfin un membre peut ajouter des calendriers externes uniquement visibles de lui.

Pour chaque calendrier externe ajouté, il est possible de préciser un libellé (p. ex. Vacances Scolaires 2012), une fréquence de rafraîchissement (p. ex. tous les mois) et la couleur dans laquelle ces événements apparaîtront dans les calendriers.

Fig. 1. Ajout de calendriers externes.

Le système de planification collaborative d’événement a aussi été amélioré. Lorsqu’un membre renseigne ses disponibilités, les dates conflictuelles avec son agenda sont indiquées.

Enfin, le suivi des participations à un événement est désormais stocké dans JcmsDB afin de gérer des volumétries importantes sans impacter le Store.

1.2 JMag

Le module JMag est un système de veille collaborative basé sur le partage de ressource Web autour d’une thématique. Les participants disposent d’une bookmarklet permettant de rapidement partager une page web qu’ils trouvent intéressantes. Le titre, l’URL et même le résumé sont automatiquement extraits de la page. L’utilisateur choisit un visuel d’accompagnement (soit la capture du site, soit une des images de la page), sélectionne des tags et peut ajouter un commentaire.

Fig. 2. La bookmarklet JMag permet de partager rapidement une page Web avec sa communauté.

Les ressources partagées sont présentées dans une portlet avec une mise en page de type Journal. Des outils de filtrage (par date, auteur, tags, …) sont disponibles. Les ressources déjà consultées par l’utilisateur sont grisées pour porter l’attention sur les nouveautés. La portlet peut être filtrée par espace et ainsi permettre de gérer des JMag spécialisés par espaces collaboratifs tout en proposant un JMag reprenant tout ou partie des ressources partagées pour le bureau personnalisé.

Fig. 3. La portlet JMag. Les articles déjà consultés sont grisés.

1.3 Wiki

Afin d’augmenter la vision collaborative de l’édition, le module Wiki présente la liste des co-auteurs d’une page, triés selon leur date d’intervention.

Fig. 4. La liste des co-auteurs apparait sur chaque page Wiki.

Le module Wiki peut être paramétré pour utiliser soit l'édition wiki classique soit l’édition texte riche (wikiwyg). Néanmoins, en standard ce paramétrage n'est pas activé car l’implémentation actuelle du mode d’édition texte riche ne permet pas de bénéficier de certaines fonctionnalités (édition par section, tableaux, table de matière, insertion de vidéo YouTube, …)

Fig. 5. Edition wysiwyg d’une page Wiki.

1.4 Navigation récente

La portlet Navigation récente liste les derniers contenus consultés triés par dernière consultation. Elle peut être paramétrée pour n’afficher que les contenus de l’espace courant.

Fig. 6. La portlet Navigation récente.

2 Social et conversationnel

2.1 Les blogs

Le module Blog a été complètement refondu. L’interface a été rendue homogène avec celle du module "Espace de Conversation".

Le module propose à la fois des blogs personnels, alimentés par un membre, et des blogs d’espaces collaboratifs qui peuvent être alimentés par plusieurs participants. Les billets des blogs personnels sont regroupés dans un même espace de travail, la blogosphère. Un formulaire permet de faire une demande d’ouverture de blog.

Fig. 7. La nouvelle interface des blogs (blog d’espace collaboratif).

Les billets peuvent disposer d’un workflow comme tout contenu JCMS. Par défaut, ils sont configurés avec le workflow Brouillon.

Afin de gérer une grande volumétrie de billets ceux-ci sont désormais stockés dans JcmsDB. Les blogs, qui regroupent les billets, sont par contre stockés dans JStore. Un outil de migration pour les anciens blogs est disponible.

Fig. 8. Affichage d’un billet dans un blog personnel.

Les derniers billets du membre apparaissent à la fois dans l’interface du blog mais aussi dans un nouvel onglet de la page profil du membre.

Fig. 9. Affichage des billets d’un membre dans la page profil

La portlet Blog liste les derniers billets, les billets du membre et les derniers blogs créés.

Fig. 10. La portlet Blogs.

Le module Blog propose aussi une interface pour les SmartPhones. On peut naviguer dans les blogs, consulter les billets, les commenter, les rechercher mais aussi en rédiger.

Fig. 11. L’interface Smartphone des blogs.

Enfin, le blog dispose d’une interface de gestion indiquant notamment les audiences de chaque billet.

Fig. 12. L’interface de gestion des billets.

2.2 Microblogging et publication rapide

Le module ESN propose une nouvelle fonctionnalité de microblogging. Cette fonctionnalité remplace la gestion du statut des précédentes versions.

Un utilisateur peut rapidement publier un message qui apparait dans le flux d’activité. Les membres qui suivent l’auteur du message peuvent alors réagir en publiant un commentaire.

Fig. 13. L'interface de microblogging dans l'activité.

Les messages de microblogging sont des contenus utilisateurs au même titre que les discussion de forum, les idées, les questions, les avis, ... Ils peuvent être consultés, recherchés, commentés, ...

Fig. 14. L'affichage d'une discussion autour d'un message de microblogging.

2.3 Flux d’activité

La portlet Activité du module ESN a été enrichie. Le flux d’activité devient un véritable mur où apparaissent le détail des contributions et où il est possible de commenter. Pour les activités correspondant à des publications, le résumé est affiché. S'il s’agit d’un média, la prévisualisation est ajoutée (p. ex. une vignette pour une image, le lecteur pour une vidéo, …) Les 2 derniers commentaires apparaissent sous chaque activité avec la possibilité d’en publier un nouveau.

Fig. 15. Le nouveau flux d'activité

Lorsque la portlet Activité est utilisée au sein du bureau personnalisé, les membres peuvent en configurer le contenu. Il est ainsi possible de choisir si l’on affiche le résumé, les commentaires mais aussi de définir des filtres : par type d’activité et selon l’espace de provenance de l’activité.

Fig. 16. Le flux d’activité peut être filtré sur différents critères.

2.4 Gestion des relations

La gestion des relations a été enrichie dans le module ESN. L’approbation de mise en relation est désormais optionnelle. Si elle est désactivée, lorsqu’un membre demande à entrer en relation avec un autre membre, l’opération est immédiate.

En alternative à la mise en relation, un membre peut suivre l’activité d’un autre membre sans pour autant être en relation. Contrairement à la mise en relation, le suivi n’est pas réciproque et il n’offre pas le même niveau d’accès au profil que la mise en relation (pas d’accès aux publications récentes du membre, à son agenda, aux communautés, …)

Enfin, le calcul de proximité entre les membres tient maintenant compte des réunions communes auxquelles ils ont participés.

2.5 Espaces de conversations

En plus des boîtes à idées et des FAQ collaboratives, les espaces de conversations proposent un nouveau type de conversation : les discussions. Il s’agit de discussions libres, proches de ce que l’on trouve dans un forum.

Pour une thématique donnée, il est parfois nécessaire de proposer à la fois une boîte à idées, une FAQ collaborative et des discussions. Il est maintenant possible de regrouper les trois types de conversations au sein d’une même « communauté de conversations ».

Fig. 17. Les trois types de conversation peuvent être regroupés en une même communauté.

La portlet Conversations affiche toutes les conversations d’un espace de conversations, d’un espace de travail ou de tout le site.

Fig. 18. La portlet Espace de conversations

Enfin, les espaces de conversations disposent d’une interface Smartphone. On peut naviguer dans les conversations, consulter les conversations suivies, non lues, voter, commenter, réagir et même lancer de nouvelles conversations.

Fig. 19. L’interface Smartphone des espaces de conversations.

2.6 Authentification sociale

Le module OAuth propose aux utilisateurs de s’authentifier sur un site JCMS via un réseau social externe tel que Facebook, Twitter, LinkedIn, Google plus ou même le compte Yahoo !. Le module exploite pour cela le protocole d’authentification OAuth.

Le niveau des informations récupérées auprès des fournisseurs d’authentification est variable. Ils permettent tous d’obtenir le nom et le prénom de l’utilisateur. Yahoo! renvoie aussi l’email.

Fig. 20. Authentification avec un réseau social externe.

3 Messagerie

3.1 Messagerie instantanée

Le module XMPP permet de connecter JCMS avec une messagerie instantanée supportant le protocole XMPP/Jabber. Une fois cette connexion établie et les adresses XMPP renseignées dans les comptes utilisateurs, JCMS remonte les informations de présence et permet de démarrer des conversations.

Pour fonctionner, ce module interagit avec un serveur XMPP. Plusieurs serveurs XMPP existent, comme par exemple OpenFire. Pour ce dernier, le module XMPP fournit un plugin qui simplifie la gestion des utilisateurs (OpenFire interroge JCMS pour valider les authentifications).

Les utilisateurs doivent aussi disposer d’un client XMPP sur leur poste. De nombreux clients, payants ou gratuits existent (cf. http://xmpp.org/xmpp-software/clients/). Le module a été testé notamment avec Pidgin, Digsby, Trillian, iChat, …

Avec le module XMPP, l’information de présence, matérialisée par l’icône bulle sur les photos, propose un nouvel état qui indique que le membre est connecté mais pas actif sur sa machine.

Dans le profil ESN d’un membre, un lien permet de déclencher une conversation avec ce membre. On retrouve ces liens dans les cartes utilisateurs.

Fig. 21. Le module XMPP enrichit les cartes utilisateurs pour démarrer des conversations.

Le module XMPP fournit aussi une interface Web pour initier une conversation. Le membre avec qui l’on souhaite communiquer doit disposer d’un client XMPP sur son poste.

Fig. 22. L'interface Web du module XMPP.

Enfin, le module XMPP propose une portlet de notification qui permet d’envoyer un message sur la messagerie instantanée des membres d’un espace de travail ou d’un groupe.

Fig. 23. La portlet de notification XMPP

3.2 Interconnexion Microsoft Lync

Le module Microsoft Lync permet de proposer les fonctions de communication offertes par Microsoft Lync (messagerie instantanée, voix, visio-conférence, partage d’écran, …). Il permet de déclencher l’une des fonctions de communication depuis la page d’un membre. Il remplace aussi l’information de présence des membres par celle fournie par Lync.

Ce module utilise un composant ActiveX fournit par Microsoft qui nécessite donc d’utiliser un navigateur Internet Explorer.

Fig. 24. L'interface de communication du module Lync

3.3 Portlet IMap

Le module IMap fournit une portlet qui affiche les e-mails d’un utilisateur. La messagerie utilisée doit fournir un accès IMap. C’est notamment le cas de Gmail, Yahoo! Mail, Zimbra, Microsoft Exchange, Courier IMap,…

L’authentification peut se faire par login/mot de passe ou par le protocole OAuth (pour Gmail et Yahoo! Mail)

Fig. 25. La portlet IMap affiche les e-mails de l’utilisateur.

4 GED et Workflow

4.1 Add-in MS Office

L’add-in Jalios pour Microsoft Office ajoute un volet d’exploration permettant d’interagir avec un site JCMS directement depuis les applications de la suite Office (Word, Excel, PowerPoint). Il permet de déposer un nouveau document sur un site JCMS, de naviguer au travers des espaces de travail et des catégories, de faire des recherches et de modifier des documents existants.

La nouvelle version de ce module permet désormais de modifier un document directement depuis sa page Web. L’utilisateur dispose d’un nouveau lien qui verrouille le document, ouvre l’application Office et charge le document. Ainsi, l’utilisateur dispose de deux façons d’accéder et de modifier un document : directement depuis Office ou depuis le site JCMS. Ce lien est à la fois présent dans la page détaillée du document mais aussi depuis son menu contextuel.

Fig. 26. Le module Microsoft Office permet de déclencher l’édition depuis le site JCMS.

L’interface de dépôt a été complétée pour renseigner toutes les métadonnées du document, comme on le fait avec l’interface Web (titre, description, classement, droits, espace de travail, suivi des lecteurs, …)

Fig. 27. La nouvelle interface de dépôt de l’add-in Microsoft Office.

4.2 Quotas disque

Depuis de nombreuses versions, JCMS dispose d’un système de quotas par type de fichier. Il est ainsi possible de refuser le dépôt de vidéo de plus 1 Go, de document Word de plus de 50 Mo, …

JCMS 7.1 complète ce système avec une analyse de la consommation disque d’un site JCMS. Cette analyse est faite pour tout le site mais aussi pour chaque espace. A ces deux niveaux, il est possible de définir les quotas et les seuils d’alerte. Le paramétrage global s’effectue dans l’éditeur de propriétés et peut être précisé espace par espace.

Lorsque la consommation disque globale ou celle d’un espace dépasse le seuil, l’administrateur reçoit un mail d’alerte. Cette alerte est actuellement juste informative. C’est à l’administrateur concerné d’effectuer les nettoyages nécessaires ou de demander une augmentation du quota.

Fig. 28. Les quotas disque se paramètrent dans l’éditeur de propriétés ou espace par espace.

JCMS 7.1 propose une interface de suivi de la consommation disque globale. Cette interface est disponible en allant dans Espace d’administration > Supervision > Quotas disque.

Fig. 29. L’interface de suivi global des quotas disque.

Les administrateurs d’espace de travail peuvent consulter la consommation détaillée de leur espace en allant dans Administration > Tableaux de bord > Documents.

Fig. 30. L’interface de suivi de la consommation disque d’un espace de travail.

4.3 Workflow

Jusqu’à présent, les workflows étaient définis dans un espace de travail pour un type de publication. Toutes les publications de ce type publiées dans cet espace évoluaient donc avec ce workflow. Avec JCMS 7.1, il est possible de choisir, en plus de ce comportement, le workflow à utiliser, publication par publication. L’administrateur de l’espace propose, pour un type de publication, l’ensemble des workflows qui peuvent être utilisés et les groupes de contributeurs habilités à choisir. La sélection se fait pas un simple glisser/déposer.

Fig. 31. L’interface de sélection des workflow d’instances.

Une fois ce paramétrage fait, les contributeurs autorisés peuvent alors choisir l’un des workflows proposés. Le workflow défini par défaut est celui associé au type de publication.

Fig. 32. Choix du workflow dans un formulaire d’édition.

4.4 Verrouillage implicite pour les DBData

Lorsqu’un contributeur édite une publication stockée dans le store, un verrou léger est posé. Ce verrou prévient les autres contributeurs voulant éditer la même publication qu’elle est actuellement en cours d’édition. Cependant, le contributeur peut passer outre et forcer l’édition. Ce type de verrouillage implicite est complémentaire du verrouillage « dur » pour lequel seul le contributeur ayant posé le verrou peut éditer la donnée. JCMS 7.1 étend le verrouillage implicite aux publications gérées dans JcmsDB. Attention cependant ! Le verrouillage implicite étant géré en mémoire, il n’est pas compatible avec des architectures dans lesquelles les écritures sont réparties sur plusieurs réplicas JSync (module de centralisation des écritures non activé).

 

5. Mobilité

Le module iPhone a été renommé en module Smartphone car il fonctionne désormais avec les 3 principaux Smartphones du marché : iPhone, Android et BlackBerry (v6 et v7).

Le module fournit toujours un ensemble de services de bases qui sont complétés par les services des modules installés dans JCMS. On trouve ainsi les services suivants :

  • La Recherche
  • L’activité de mon réseau
  • Mon agenda
  • L’annuaire
  • Les blogs
  • Les espaces de conversations
  • Mes flux RSS
  • Mes relations
  • Microblogging
  • Mes tâches
  • Workflow

L’accès au contenu depuis le smartphone a été amélioré. Lorsqu’un utilisateur reçoit un e-mail sur son smartphone avec des liens vers une donnée (contenus, documents, conversation, commentaire, pages profil, …) et qu’il clique sur l’un de ces liens, il est automatiquement redirigé vers la vue smartphone de la donnée.

Fig. 33. Le module Smartphone fonctionne sur iPhone, Android et BlackBerry.

 

 

6 Refonte graphique et ergonomique

JCMS 7.1 a subi une importante refonte graphique et ergonomique. Celle-ci se traduit à la fois dans le rendu des pages mais aussi dans leur composition avec un nouveau framework CSS et une homogénéisation des composants.

6.1 Les nouvelles interfaces

6.1.1 La topbar

La tobpar est une barre noire qui se situe en haut de toutes les pages. Elle est en position fixe et ne bouge pas lorsque l’on fait défiler la page vers le bas. Elle fournit des liens vers les principales interfaces de JCMS : l’accueil, les portails, les espaces de travail, l’espace d’administration, la page profil du membre, … Elle donne aussi des informations contextuelles : le nom du site ou l’espace courant, la langue utilisée, des messages d’alerte (délégation, écritures désactivées, …)

Le contenu de la topbar varie selon qu’elle est affichée en front-office, dans un espace de travail ou dans l’espace d’administration. En front-office, elle offre par exemple la recherche sur l’ensemble du site alors que dans un espace de travail la recherche est limitée aux publications de cet espace.

Cette barre comporte de nombreux points d’entrée (targets) qui permettent d’ajouter de nouveaux liens. Par exemple, le module Prévisualisation Temporelle ajoute un icone dans la topbar du front-office pour visualiser le site à une date donnée.

Fig. 36. Les différentes topbars de JCMS 7.1.

En front-office, la topbar propose le menu "Publier" qui permet aux contributeurs de rapidement publier une information. Le contenu de ce menu est filtré sur les droits de contribution des membres mais aussi sur les types autorisés dans l’espace courant. Le menu "Publier" propose par défaut la publication de document. Chaque module contribue à ce menu en y ajoutant ses propres types (p. ex. événements, sondages, idées, questions, billets de blog, …)

Fig. 37. Le menu "Publier" de la topbar.

6.1.2 Les formulaires d’édition

La composition des formulaires d’édition des publications a été complétement revue. Le formulaire occupe tout l’espace de la page. Sa partie supérieure est fixe et comporte les boutons, le titre et les principaux onglets (Contenu, Catégories, Droits, …). La partie inférieure contient les champs de l’onglet sélectionné. Cette partie a été allégée graphiquement en réduisant le nombre de boîtes imbriquées.

Fig. 38. Les nouveaux formulaires d’édition des publications.

De nombreux modules fournissent des formulaires d’édition en modale (p. ex. Ajout d’un événement, d’une planification, d’un contact, ouverture d’un espace collaboratif, d’un projet Gantt, ...) Ceux-ci ont aussi été revus afin d’être homogènes avec le reste des interfaces.

Fig. 39. Les nouveaux formulaires à étapes.

6.1.3 L’édition Wikiwyg

Les champs Wiki peuvent être paramétrés pour disposer d’une interface de saisie en texte riche (wysiwyg). Celle-ci n’est pas aussi complète que les champs "texte riche" mais elle fournit les principales actions disponibles en Wiki (mise en forme, titres, insertion de lien, d’image, …).

Attention ! L’implémentation actuelle des champs wikiwyg n’est pas aussi fonctionnelle que les champs Wiki classiques. L’édition par section et l’insertion de tableau ne sont pas opérationnelles. Certains tags wiki ne fonctionnent pas. Aussi, il est recommandé de réserver l’usage de l’édition wikiwyg à des champs dans lesquels les fonctions avancées Wiki ne seront pas nécessaires.

Fig. 40. Exemple de champ wikiwyg (édition wysiwyg d’un champ Wiki).

6.1.4 La recherche

L’interface de recherche a été restructurée et met en avant les facettes d’affinement. Celles-ci sont regroupées dans une colonne à droite des résultats. Il est ainsi possible de filtrer les résultats en sélectionnant des catégories, des tags, des types de publication, des types de document, des dates, des rédacteurs, …

Fig. 41. La nouvelle interface de recherche avec la colonne des facettes à droite.

6.2 Le framework CSS Bootstrap

JCMS 7.1 intègre Bootstrap. Il s’agit d’un framework CSS réalisé par Twitter. Ce framework est très complet et il garantit une grande homogénéité dans les pages. Il normalise ainsi tout ce qui est nécessaire pour composer une page : typographie, mise en page, formulaire, boutons, tableaux, boîtes, … JCMS 7.1.0 intègre la version 1.4 de Bootstrap et JCMS 7.1 SP1 intègre la version 2.0 qui offre plus de modularité (et donc de meilleures performances).

Fig. 34. JCMS 7.1 intègre le framework CSS Bootstrap.

JCMS 7.1 complète Bootstrap en ajoutant des composants propres à JCMS, comme par exemple les champs "lien" avec auto-complétion, les différents systèmes d’onglet, des boîtes enrichies, …

Fig. 35. JCMS 7.1 adapte et complète Bootstrap avec de nouveaux composants.

7. Administration

7.1 Vérification des droits

JCMS 7.1 intègre un outil de vérification des droits pour les contenus. Ceci permet de savoir si un membre donné à le droit de consulter, modifier ou supprimer un contenu donné.

La vérification des droits est déclenchée sur un contenu en sélectionnant « Vérifier les droits… » dans le menu contextuel.

Fig. 42. La vérification des droits est déclenchée depuis le menu contextuel d’un contenu.

L’interface permet de choisir le membre et le type de droit à vérifier. JCMS affiche alors le résultat. En cas de refus d’accès, une explication détaillée est affichée. La vérification tient compte de tous les types de droits : droits sur groupe/membre, workflow et RightPolicyFilter.

Fig. 43. Lors de la vérification des droits, si l’accès est refusé, une explication est donnée.

7.2 Sécurité

La sécurité contre les attaques extérieures a été fortement renforcée dans JCMS 7.1. L’ensemble du code a subi un audit afin de lutter contre les attaques de type XSS (Cross-Site Scripting), CSRF (Cross-Site Resource Forgery) et phishing.

Ceci a été fait en respectant les recommandations de l’OWASP et en intégrant à JCMS l’OWASP Enterprise Security API.

Par ailleurs, pour lutter contre les attaques par force brute, les mots de passes des membres sont désormais cryptés avec l’algorithme BCrypt qui est conçu pour empêcher ce type d’attaque. JCMS 7.1 est néanmoins compatible avec les mots de passes cryptés avec les précédents algorithmes.

Un article, bientôt disponible, présentera en détail les procédures de développement respectant les contraintes de sécurité.

7.3 Module Anti-Virus

Le module Anti-Virus effectue une analyse virale à chaque dépôt de fichier sur JCMS. Pour cela, il fait appel à un anti-virus externe. Si un virus est détecté, le document est placé dans un répertoire de quarantaine et une alerte est envoyée à l’administrateur.

Ce module a été validé avec l’anti-virus gratuit ClamAV

La prise en compte d’un nouvel anti-virus nécessite un petit développement Java pour effectuer l’appel, le passage de paramètre et la prise en compte du résultat de l’analyse.

7.4 StoreMerge

Le StoreMerge est un outil destiné à faciliter les phases de déploiement. Il permet par exemple de faire la fusion entre les nouvelles données à déployer et celles en production.

JCMS 7.1 améliore le fonctionnement du StoreMerge en plusieurs points.

7.4.1 Gestion des conflits

La gestion des conflits est paramétrable :

  • En mode strict, la fusion est interrompue si des conflits sont détectés
  • En mode non strict, la fusion est interrompue si les conflits détectés n’ont pas été résolus.

La résolution de conflit est automatique pour des mises à jour sur la même donnée et portant sur des attributs différents. Par exemple, une catégorie a été mise à jour dans les deux stores mais l’une des modifications portait sur son nom et l’autre sur son parent.

Pour les conflits de type mise à jour concurrente ou de type mise à jour / suppression, il est possible de préciser un mode de résolution donnée par donnée. Pour cela, il faut fournir un fichier texte dans lequel on indique pour chaque donnée conflictuelle s’il faut prendre l’ensemble des opérations du premier store ou bien celles du second. Pour faciliter cette tâche, le StoreMerge peut produire ce fichier de résolution. Il suffit de l’éditer et de déterminer les résolutions puis de relancer le StoreMerge avec ce fichier.

7.4.2 Autres nouveautés

Pour effectuer une fusion, le StoreMerge doit déterminer les suffixes divergents des deux Stores fournis. Cette opération peut prendre du temps si les stores sont de taille importante. Aussi pour accélérer cette étape, il est maintenant possible d’indiquer, avec l’option gcs, la plus grande estampille commune aux deux Store.

Enfin, jusqu’à présent le résultat de la fusion était enregistré dans l’un des deux stores fournis en paramètre. Avec JCMS 7.1, il est possible d’indiquer un fichier de sortie pour le résultat de la fusion.

7.5 SEO et multilinguisme

JCMS 7.1 améliore le référencement des sites multilingues et l’accès aux contenus multilingues référencés dans les moteurs de recherche externes (Google, Bing, Yahoo, …) Lorsqu’un site est multilingue, la langue courante est désormais ajoutée dans la construction des URL. Lorsqu’un robot d’indexation parcours le site, il indexe alors différemment le même contenu selon la langue de navigation. Ainsi, en distinguant les URLs des contenus selon leur langue, les utilisateurs arrivant sur le site via un moteur de recherche seront dirigés vers le contenu dans la même langue que celle indexée et affichée dans les résultats de recherche.

8. Développement

8.1 Edition d’une donnée

JCMS 7.1 propose une interface pour éditer ou afficher une donnée à partir de son identifiant, quelques soit le type de données. Cette interface est accessible depuis Espace d’administration > Développement > Editer une données.

Fig. 44. L’interface d’édition ou d'affichage d’une donnée à partir de son identifiant..

8.2 Less

Le framework CSS Bootstrap est basé sur Less. Il s’agit d’un pré-compilateur de CSS qui simplifie et enrichit l’écriture des CSS. Il ajoute les notions de variables (p. ex. pour les couleurs), de mixins et permet de faire du code imbriqué.

Exemple de code Less :

@color: #4D926F;
.rounded-corners (@radius: 5px) {
  border-radius: @radius;
  -webkit-border-radius: @radius;
  -moz-border-radius: @radius;
}

#header {
  .rounded-corners;
  color: @color;
}
h2 {
  color: @color;
}
#footer {
  .rounded-corners(10px);
  color: @color;
}

8.3 ComparatorManager

Lors de la réalisation d'un site, un besoin récurrent est de proposer et d'utiliser des ordres de tri personnalisés dans des Portlets "Requête/Itération" (également appelés Portlet "Query/Foreach" ou "PQF").

Jusqu’à présent, pour fournir ces tris, il était nécessaire de modifier ou de recopier des JSP natives de JCMS. Ceci ne facilitait ni la maintenance du code ni les migrations.

JCMS 7.1 introduit une nouvelle façon de déclarer des ordres de tri, facilement, sans modification du code de JCMS. De plus, cette API simplifie et unifie l'accès aux Comparator, préalablement disséminés sur plusieurs classes de l'API JCMS.

Pour plus de détails, consultez l’article JCMS 7.1 : Tri de données via le ComparatorManager

8.4 Fichiers associés

La gestion des fichiers satellites d’un document a été complètement revue. Avec JCMS 7.1, tous les fichiers produits consécutivement à un dépôt de document sont regroupés dans un répertoire portant le nom de ce fichier et l’extension .associated. Pour les sites migrés sur JCMS 7.1, un traitement automatique est lancé lors du premier démarrage pour effectuer cette réorganisation.

Si un module doit produire des fichiers satellites pour un document, il doit utiliser la nouvelle API prévue à cet effet. Celle-ci fournit notamment les méthodes pour ajouter et supprimer des fichiers satellites. Pour plus de détails, consultez la javadoc de la classe com.jalios.jcms.AssociatedFilesManager qui est en charge de ces traitements.

8.5 Tags

JCMS 7.1 introduit la notion de tags. Il s’agit de branches de catégories dédiées à cet usage. Il est possible de déclarer une branche globale à tout le site mais aussi de spécialiser cette branche espace par espace. Pour l’instant, les tags sont utilisés uniquement comme facette dans l’interface de recherche. Les modules faisant usage de cette notion (Espace de conversations et JMag par exemple) vont être bientôt mis à jour pour l’exploiter.

8.6 Configuration du widget Wysiwyg

Le widget UI_EDITOR_RICHTEXT permet d’insérer un champ d’édition en texte riche. On peut désormais configurer finement ce champ pour avoir exactement les fonctionnalités souhaitées dans la barre d’outils de l’éditeur. Ceci se fait en déclarant, des propriétés et en renseignant cet usage dans l’attribut wysiwygCss du tag <jalios:widget>.

Fig. 45. Exemple de configuration du champ texte riche pour un widget.

9. Nouvelles certifications

JCMS 7.1 est certifié avec de nouveaux composants du SI.

  • Serveurs d’application (JDK 1.6)
    • Tomcat 6 et 7
    • Weblogic Server 10
    • IBM Websphere 7
    • Glassfish 3.1
    • JBOSS 5.1 GA (à partir de JCMS 7.1 SP1)
  • SGBDR
    • PostgreSQL 8.4 et 9
    • MySQL 5 et 5.5
    • Oracle 10g et 11g
    • SQL Server 2008
    • IBM DB2 9
  • Navigateurs
    • IE 7, 8 et 9
    • Firefox 4+
    • Chrome 10+
    • Safari 4+
  • OS
    • Linux
    • Windows
    • Solaris
    • AIX

Pour plus de détails sur les plateformes sur lesquelles JCMS 7.1 est certifié, reportez-vous au Manuel d’installation et d’exploitation.