Ici ou ailleurs ...

Aller au contenu | Aller au menu | Aller à la recherche

Infoglue 2.5.0

La version 2.5.0 d'Infoglue est disponible depuis le 17 juin 2007 et possède de nombreuses évolutions du produit :

  • possibilité de changer le type d'un contenu à la volée (on était contraint auparavant de le recréer)
  • mise à jour de FCKeditor en version 2.4.2 (la 2.4.3 est sorti le 14 juin)
  • amélioration des performances
  • amélioration de la tenu en charge
  • de nombreuses correction de bug
  • de nouveaux connecteurs pour les mécanismes d'authentification et d'authorisation
  • ajout de service web supplémentaires

Plus de détails sur la pages des nouveautés de la version 2.5.0. Voici le lien pour télécharger Infoglue 2.5.0 sur sourceforge. Et finalement, voici le lien pour la documentation des différentes version.

Si vous souhaitez avoir des informations concernant les anciennes version d'Infoglue, voici les liens vers les journaux de changement :

Présentation Infoglue Part 3

Pour la création de page d'un site, Infoglue propose une interface de construction par bloc. Comme avec des Légos, on construit sa page en ajoutant des blocs (appelés composants), le premier blocs étant (dans le cas d'une page web) un fragment HTML contenant la balise racine de la page <html>

Dans ce fragment HTML, on va insérer des balises spécifiques à Infoglue : les slots (slot signifiant emplacement en anglais). Un slot est représenté par la balise <ig:slot id="menuGauche"></ig:slot> (on vient de créer ici un emplacement identifié par menuGauche. Il est ensuite possible de rajouter d'autres composants à cet emplacement, ces composants pouvant eux aussi contenir des slots. Un structure arborescente de composants est alors définies et représentera les différents blocs de la page. Pour simplifier, on peut voir ces slots comme des emplacements où l'on aurait réalisé une inclusion de code avec un include en jsp par exemple.

Chaque niveau de cet arbre sera interprété par le constructeur de la page (appelé invoker) du niveau le plus bas vers le niveau le plus élevé c'est à dire le composant racine. Il est donc possible de faire un composant de niveau n+1 qui génère du code qui sera interprété lors du traitement du niveau n =P. L'avantage de cette interprétation par bloc est la possibilité de définir ces composants dans des langages différents. Il est possible d'écrire ces composants en JSP ainsi qu'en velocity ou en freemarker. Le velocity se prète très bien à l'écriture de composant simple de remontée de contenu. Cependant, ce langage montre rapidement ces faiblesses lors de traitements récurssifs malgrè l'usage de "fonctions" macros. A ce moment, la définition en JSP, bien que plus lourde en définition de variable, est plus robuste.

Chaque composant peut se voir paramétrés : par des liens vers des contenus ou des pages du CMS, par des champs texte, des cases à cocher, ... Ces informations sont ensuite récupérables dans les composant pour être traitées. De cette façon, on peut rendre dynamique de nombreux composants et surtout les rendre générique. Par exempl, on peut imaginer un composant qui affiche la liste des article dans un dossier de contenu, les paramètres pourraient donc être un lien vers le dossier de contenu et le nombre d'article à afficher. Je reviendrez dans un autre billet sur le paramétrage des composants et notamment la notion d'héritage de propriétés.

Présentation Infoglue Part 2

La grande force d'Infoglue est aussi sa principale difficulté d'approche. La séparation totale entre le contenu et la forme nécessite une certaine abstraction lors de la saisie. En effet, le contributeur ne décide pas de rajouter une telle page avec tel contenu comme on peut le rencontrer dans des CMS comme Jahia par exemple. La construction des pages est plutôt de la responsabilité du webmestre, les contributeurs étant limités à la saisie de contenu.

Cette séparation peut paraître pénalisante du fait de cette abstraction nécessaire. Cependant, cela entraîne une facilité inégalée de manipulation de ces contenus. La multireprésentation d'un contenu est un point important dans un CMS. Un contenu peut être affiché au sein d'une page web ou encore sous forme XML pour un traitement XSL, affiché de façon complète ou succinte, ... on peut imaginer tout ce que l'on abesoin et tout ceci sans duplication du contenu. On parle aussi de multipositionnement, un contenu de type article peut voir son accroche affiché sur la page de garde du site, son titre affiché dans un bloc de la colonne de droite ou son corps affiché dans son intégralité dans une page propre au contenu.

Depuis la version 2.3 d'Infoglue, un assistant de création de contenu rend la saisie de nouveaux contenu plus facile pour l'utilisateur. Lors de l'édition d'un contenu, l'interface propose de rattacher un contenu déjà existant ou de créer un nouveau contenu qui sera rattaché automatiquement à la page. De cette manière, la création de nouveau contenu se fait pas à pas pour l'utilisateur qui n'a donc plus à jongler entre les différentes pages de l'interface d'administration.

Présentation Infoglue Part 1

Infoglue est un système de gestion de contenu (CMS en anglais pour Content Management System). C'est un outil développé initiallement par un groupe suédois emmené par Mattias Bogeblad.

Basé sur des technologies J2EE reconnues (Hibernate, Castor, OSWorkflow, PropertySet, Webwork), il peut être connecté théoriquement avec n'importe quelle base de données possédant un connecteur JDBC (MySQL, PostGreSQL, SQL Server, Oracle, Sybase, ...).

Un flux de validation (validation worflow en anglais) à 2 étapes est disponible de base :

  • on crée un contenu, celui-ci est donc à l'état de brouillon,
  • le brouillon est soumis à publication, le contenu est à l'état d'attente de publication,
  • le contenu est enfin validé, le contenu est publié, il est disponible au public.

Ces 2 étapes de validation définissent donc 3 états possibles du contenu.

Le cycle de vie des contenus est disponible par défaut. Cela permet de définir à quelle période un contenu est disponible au public. Le contenu apparaît automatiquement à la date de début de son cycle de vie et disparaît automatiquement à la fin. Cette notion de cycle de vie permet d'introduire 2 sous-états pour l'état publié : actif ou archivé.

Au total par défaut, cela fait 4 états possible pour un contenu :

  • brouillon
  • en attente de publication
  • publié et actif
  • publié mais archivé

Il est possible de définir de nouveaux flux (de validation ou métier) en se basant sur les mécanismes d'OS Workflow. Dans le cas de nouveaux flux de validation, il est délicat de se raccorder au mécanisme natif d'Infoglue. Il est possible de le faire mais au prix d'un investissement élevé. Pour les flux métiers, il est possible d'appeler n'importe quel code Java (moyennant quelques interfaces à implémenter de façon simple). Cela peut être très pratique pour déclencher des traitements par lot (batch) directement à partir de l'interface d'administration.

Il est relativement simple d'implémenter un mécanisme de gestion des authorisations et des authentifications. Dans l'interface d'administration, il est possible de changer les classes java en charge de ces 2 points. Quelques classes java sont fournies et peuvent servir d'exemple pour le développement de mécanismes de gestion bien spécifique.
Parmis les connecteurs présent par défaut, on retrouve en autre pour l'authentification :

  • mécanisme de base d'Infoglue : mot de passe et utilisateur en base de données d'Infoglue
  • connecteur CAS : permet de déléguerl'authentification à un serveur CAS
  • connecteur LDAP : recherche les informations de connexions dans un annuaire LDAP

Pour l'authentification :

  • mécanisme de base d'Infoglue : rôles, groupes et leur affectation aux utilisateurs en base de données d'Infoglue.
  • connecteur LDAP : toutes les informations sont stockées dans l'annuaire LDAP. Infoglue est alors en lecture seule sur la gestion des authorisation, tout changement s'opère dans le LDAP.

Liferay 4.3 ... avec jQuery !

Liferay vient de sortir dans une toute nouvelle version 4.3 ! C'est un portail J2EE opensource, c'est à dire un portail alimenter par des briques métier appelées "Portlet" qui respecte la spécification JSR168. C'est aussi système de gestion de contenu (CMS en anglais pour Content Management System) qui s'appuie sur son propre moteur (Journal) ou qui délègue à un autre outil CMS (ici Alfresco).

Liferay brille par son interface en tout ajax, mécanisme qui est très à la mode actuellement. Cela permet de mettre en place des systèmes à la Netvibes.

Pourquoi je parle de Liferay ici ? C'est tout simple. Ils sont en train de refondre tout leur javascript en utilisant la bibliothèque jQuery (version 1.1.2). Beaucoup de greffon de jQuery sont inclus par défaut. Parmis eux, on retrouve :

C'est une bonne chose pour une jeune bibliothèque comme jQuery d'avoir dans ses références des acteurs de poids. On retrouvait déjà jQuery au sein du système de gestion de contenu Spip ... il va falloir s'attendre à voire débarquer cette bibliothèque dans de nombreux autres projets ... et ce n'est pas moi qui vais m'en plaindre =P

Vous pouvez dès à présent télécharger Liferay.