Xoopshere : une révolution ?

Date 03/03/2005 | Sujet : XOOPS

Notre rencontre au premier Xoopsdem à Bruxelles fut l'occasion pour nous d'avoir une présentation orale de Skalpa, l'auteur de cette version qu'il prépare depuis 6 mois, puis d'une petite démonstration le lendemain.

Les objectifs de cette nouvelle version sont atteints dans divers domaines, ils sont le fruit d'une écoute qui s'est exercée depuis plusieurs moins et démontrent la volonté de Xoops d'être performant dans la durée notamment au niveau des normes xhtml/css édictées par le W3C, y compris celles en cours de négociation.

Les informations données ci-après sont également issues des notes prises par Rowdie qu'elle a publiée sur xoops.org, et entérinées pas Skalpa.
Quand celui-ci a débuté la conception de cette nouvelle version, qui n'avait pas encore de numéro, il a souhaité revenir à l'essentiel , c'est à dire :

  1. protocole HTTP mieux sécurisé

  2. devenir pleinement compatible avec les standards, pas seulement ceux actuellement supportés mais aussi ceux à venir

  3. être mieux intégré dans son environnement, en utilisant les ressources de celui-ci quand c'est possible, comme par exemple une vraie bibliothèque de génération de fichiers au format PDF, sinon fournir une alternative de remplacement.

  4. assurer une compatibilité descendante sur les modules et thèmes utilisés pour XOOPS 2.0.x.


La prochaine version de xoops sera basée sur une architecture de composants et fournira des services aux modules à l'image de ce qui se fait avec un système d'exploitation.

Par exemple, la couche d'authentification pourra être adaptée en fonction de votre choix, simplement en configurant le composant que Xoops doit utiliser pour authentifier un utilisateur.

Exemple d'implémentation
$inst = $xoops->create('xoops.db');

Connaître la base de données utilisée n'est pas une nécessité, vous n'avez pas besoin de savoir exactement quelle classe l'utilise, seul nous intéresse la création de l'objet database.

La structure de cette version se répartit en 3 niveaux :
- Couche Système
- Couche Applications
- Système de Portail

Couche Système

Nous aurons deux modes : un mode "Developpeur" et un mode "Production".

Dans le premier (developpeur) tous les paramètres de configuration ainsi que les fichiers de thèmes/templates seront lus à chaque appel de page, et seront chargés avec les dernières modifications que vous aurez apportées.
C'est un mode réactif, qui s'il permet un débuggage plus aisé lorsque l'on développe, produira une affichage plus lent de votre site.

En mode production, seuls les paramètres de configuration nécessaires seront lus à partir d'une version compilée (un peu comme la solution utilisée par Smarty), par conséquent, moins de requêtes seront nécessaires, ce qui va procurer une extrême rapidité d'affichage.

Cette rapidité sera moins réactive aux changements mais un site en production a rarement besoin de changer ses éléments de configuration ....

La nouvelle architecture de Xoops disposera d'un code modulaire, qui sera fondamentalement illimité en fonction des composants disponibles. L'équipe de développement du noyau n'a pas encore décidé où elle s'arrêterait.

Quelques composants sont définitivement inclus comme :

XoopsAuth (authentification)
- XoopsDB et LDAP seront fournis par défaut
- Project Liberty sera aussi une option. C'est une solution open source pour les options multi-sites. Logguée sur un site, une personne sera automatiquement authentifiée pour tous les sites associés, à l'instar de l'idée de Microsoft passport.

XoopsDB
- MySQLi (released avec PHP5)
- MySQL, la base de données utilisée par défaut
- postgresql

Couche Applications

Xoops deviendra un vrai CMS! avec classes utilitaires, controleurs, création d'objets, gestion de tables dans la base de données...

Stores Manager

Cette version aura la capacité a déterminer où elle récupère ses données. Elles pourront être stockées sur différents serveurs, avoir des préfixes différents, les utilisateurs pourront être enregistrés sur différents sites. Tout cela pourra être publié sur un site ou partagé avec d'autres.
Cela pourra être utilisé également pour le multilangages.

La couche de version permettra notamment d'avoir une dimension temporelle et ainsi de pouvoir suivre les versions d'un document.

Restitution

La séparation qui existe actuellement entre les thèmes et les templates est terminée. Un thème deviendra un réservoir de ressources génériques , ainsi une ressource (images, fichier flash, template de module, etc) sera inclue dans le dossier du thème.

Le système de thèmes utilisera les principes d'héritage.

Si vous souhaitez changer un template d'un module, il vous suffira de mettre ce template dans un sous-répertoire de votre thème pour qu'il soit opérationnel.
Plus besoin de cloner des jeux de templates, et de générer des fichiers pour tous les templates juste pour faire un seul changement.

e.g.
xoops-root/theme/example_theme/
xoops-root/theme/example_theme/modules/module_index.html

En mode "développeur", le dossier theme est vérifié à chaque chargement de page afin de contrôler s'il contient des sous-répertoires avec de nouveaux templates.

En mode "Production" sera généré une liste des ressources moins gourmand en terme de ressources et par conséquent plus rapide.

XOOPS sera livré avec deux, voire 3 thèmes par défaut.
Le premier sera un thème XHTML mais sans vraiment utiliser toutes les possibilités de cette norme.

Le second sera un vrai thème XHTML (comme application/XHTML+XML). L'exemple fourni en illustrera les possibilités.

Le troisième s'oriente vers le futur du Web avec XUL.
Nous aurons besoin d'étudier cela et de vos apports comme contributeurs seront nécessaires.

Vous pourrez créer des templates qui pourront inclure des choses comme celles-ci :
<table xoops:sortable="true">
  <
tr>
    <
td xoops:sort_type="state">content</td>
  </
tr>
</
table>

La transformation XSL apporte des idées intéressantes et nous regarderons comment réaliser une similitude avec les moteurs de templates.

XOOPS 2.0.x modules

L'élaboration d'un composant permettra d'émuler les fonctions de xoops 2.0.x. Ceci permettra aux anciens modules de continuer à fonctionner, mais ils ne pourront utiliser les nouvelles fonctions de cette version.

L'objectif des développeurs du noyau sera de faire une transition entre les modules 2.0.x et la nouvelle version aussi simplement que possible.

Nous espérons simplement faire un recherche/remplace des anciennes fonctions par les nouvelles, et retirer les lignes "include" coté admin, mais cela n'est pas encore réalisé.

Une copie dans le répertoire modules (ou dans un sous-répertoire de celui-ci), et le module sera automatiquement installé.


Documentation

Chaque ligne de code sera documentée.

Roadmaps

Les premières versions de cette nouvelle génération de Xoops seront destinées aux développeurs de modules afin de tester les nouvelles fonctions du noyau. Elles n'inclueront donc pas d'émulation xoops 2.0.x. qui sera réalisée lorsque les fonctions du nouveau noyau seront stabilisées.

Système de portail

Par manque de temps, cette partie a été peu évoquée.
Il y aura un gestionnaire de blocs, mais le principal changement apporté sera la possibilité de créer une infinité de pages personnalisées, organisées en dossiers/sous-dossiers, et de pouvoir les insérer dans un bloc.

Amélioration de l'éditeur de xoops avec l'intégration d'un éditeur wisiwig allégé (genre koivi) disponible pour la totalité du site.


Conclusion

La publication d'une version alpha est prévue au cours du mois de mars à destination des développeurs de modules afin qu'ils puissent en créer de nouveaux et adapter ceux existants, mais bien sur il reste énormément de travail à réaliser, et de nouvelles fonctionnalités pourraient voir le jour d'ici la version finale.



ps: je vous remercie à l'avance de votre indulgence pour les imperfections de traduction qui auraient pu se glisser. Je ne suis pas un expert en traduction au cas où vous ne l'auriez pas remarqué (Merci Solo ), mais je m'y attele.



Cet article provient de Communauté Francophone des Utilisateurs de Xoops
https://www.frxoops.org

L'adresse de cet article est :
https://www.frxoops.org/modules/news/article.php?storyid=739