CMS OpenSource MODx (1.0.4) : retour d'expérience

  • De le 23 juin 2010
  • Difficulté : 1/4

CMS OpenSource MODx (1.0.4) : retour d'expérience Sortons un peu du cadre Magento pour un petit tour d'horizon et un retour d'expérience sur le CMS OpenSource MODx, CMS que j'ai sélectionné pour la refonte complète de Magentix.

Parmi les CMS OpenSource destinés à la création de blogs ou de petits et moyens sites, WordPress est sans aucun doute la solution la plus répandue sur le net. Plus facile d'accès grâce à l'installation automatique de plugins ou de thèmes graphiques, WordPress reste la plateforme la plus abordable pour un néophyte.

Mais lorsque l'on recherche un maximum de flexibilité et de liberté dans la personnalisation de son interface, WordPress se révèle finalement assez limité. MODx, de par son architecture modulaire et la richesse de ses fonctionnalités, est l'outil rêvé pour la réalisation de projets complexes et originaux. On pourrait le situer plus exactement entre un WordPress et un Joomla.

Voici un tour d'horizon des fonctionnalités principales offertes par la solution.

Made in Modx

Composants

Lors de ma première installation de MODx, j'ai choisi d'installer la totalité des composants livrés avec (et développés pour beaucoup par la communauté), histoire de me familiariser un peu avec les concepts de chunks, plugins ou snippets proposés par l'outil. Le rôle de chacun de ces éléments se dessine finalement assez rapidement :

  • Modèles : structuration du contenu
  • Variables de modèles (TV) : personnalisation des types de contenu, l'équivalent des attributs dans Magento
  • Chunks : blocs de contenu partagés par plusieurs pages
  • Snippets : génération du contenu dynamique, interfaçage avec la base de données
  • Plugins : scripts déclenchés lors d'événements, analogue aux observers de Magento
Eléments

Ces éléments sont gérés de façon indépendante et permettent de n'installer que les fonctionnalités nécessaires au projet (blog, galerie d'images, recherche, navigation...). La documentation fourni par MODx permet aux développeurs d'enrichir facilement le site par de nouveaux modules, et la quantité de composants développés par la communauté permet de créer rapidement par mimétisme ses propres extensions.

Il est possible de classifier et d'organiser l'ensemble des éléments par catégories afin de faciliter la maintenance. Par exemple, les chunks et snippets utilisés pour la partie inférieure du site pourront être classifiés dans la catégorie Footer.

5 snippets configurables sont à disposition pour gérer les fonctionnalités indispensables :

  • Ditto : gère les documents pour créer des Blogs, articles, ou collection de nouvelles
  • AjaxSearch : implémente un moteur de recherche. Celui-ci peut être géré en Ajax
  • WayFinder : constitue le menu de navigation sur plusieurs niveaux
  • eForm : création de formulaires personnalisables
  • Jot : gestion des commentaires

Pour Magentix je me suis tout de même séparé de WayFinder, un peu trop lourd pour le type de menu proposé sur le site.

Syntaxe

La syntaxe de MODx pour le moteur de template est particulièrement simple. Une page peut principalement intégrer un chunk, un snippet, une variable de configuration système ou la variable d'une page (Placeholders). Cette syntaxe a évolué pour MODx Revolution, encore en version Release Candidates à l'heure où j'écris ces lignes. MODx Revolution intègre l'ensemble des demandes formulées par la communauté au fil du temps (mise en cache améliorée, plus grande flexibilité, nouveau manager...).

Les différents tags à disposition pour la version Evolution avec laquelle Magentix a été développé sont les suivants :

Tag Format

<!-- Variable de template -->
[*templatevar*]
<!-- Chunks -->
{{chunk}}
<!-- Snippets -->
[[snippet]]
<!-- Placeholders -->
[+placeholder+]
<!-- Liens -->
[~lien~]
<!-- Configuration système -->
[(system_setting)]

Administration

MODx offre l'ensemble des fonctionnalités modernes et indispensables à un CMS de qualité : une gestion des droits et permissions utilisateurs avec rôles pour le contrôle d'accès aux données, une configuration poussée, un gestionnaire de fichiers, l'exportation et l'importation des contenus...

L'interface d'administration est entièrement conçue en Ajax, assurant ainsi la rapidité d'exécution des actions. Le manager est accessible, orienté utilisateur, simple et efficace. Il assure une prise en main et une familiarisation rapide.

Il faut également noter la présence d'un outil absolument géniale pour la gestion de la base de données. MODx propose en plus de la traditionnelle sauvegarde, la possibilité d'exécuter le TRUNCATE ou l'OVERHEAD d'une table directement depuis l'interface. Des indications sur la taille des indexes et sur la taille totale des tables y figurent également :

Gestion de la base de données

Référencement

MODx contribuera au référencement du site par les options qu'il propose : métas uniques personnalisables et alias d'URL optimisés pour la réécriture d'URL.

MODx pour le référencement

Il faut tout de même rester vigilant quant à la duplication de contenu (c'est le cas pour de nombreux CMS). MODx Evolution présente 2 problèmes majeurs auxquels il faut prendre garde :

La page d'accueil possède son propre alias d'URL. Les plugins et snippets ne tiennent généralement pas compte du fait qu'il s'agit de la page directement accessible depuis le domaine du site, et présenteront un URL du type http://www.domaine.tld/accueil.

L'utilisation de préfixes et suffixes d'URL est à oublier d'urgence. La configuration propose de juxtaposer automatiquement aux URLs une extension du type .html. La page est alors accessible avec et sans suffixe, soit :

  • http://www.domaine.tld/ma-page.html
  • http://www.domaine.tld/ma-page

Pour palier à ce problème, la technique consiste à préciser directement l'extension dans l'alias de la page. Cela facilitera également les choses si certaines pages sont au format XML ou TXT (flux RSS, sitemaps...).

Pour le reste et comme toujours, le référencement on-page résidera dans la qualité de la sémantique employée, dans la densité des mots clés, dans la fréquence des mises à jour... Et pour le coup, n'importe quel CMS, aussi puissant soit-il, ne pourra pas y faire grand chose.

Notez l'impossibilité de placer un slash dans l'alias d'URL, ce qui a eu un peu tendance à m'agacer pour mes pages sans extension (Ex : www.magentix.fr/modules-magento/). Il m'a fallu procéder autrement.

Mise en cache

La gestion du cache fait parti des énormes point fort de MODx. Le nombre de requêtes exécutées pour une page entre la première version de Magentix (Homemade) et celle réalisée sous MODx a diminué de presque 80%.

MODx placera la page en cache (si l'option est activée) lors de la première visite sur celle-ci. Pour les consultations suivantes, avec la majeur partie des scripts en cache, les temps d'exécution se verront considérablement accélérés.

Page en cache

Le cache de la page sera supprimé puis réinitialisé lors de la moindre modification sur celle-ci.

Certains éléments dynamiques pourront échapper à la mise en cache et seront exécutés normalement, comme par exemple l'affichage des commentaires.

Conclusion

Les points forts de MODx sont nombreux, l'outil offre une flexibilité importante. La solution s'adapte parfaitement à un site comme Magentix et la personnalisation avancée m'a permis une intégration parfaite. Bien que MODx soit plus délicat à appréhender qu'un CMS tel WordPress, une fois l'outil maîtrisé le développement devient un plaisir tant les possibilités sont infinies.

La mise en cache des documents a été l'élément déterminant dans mon choix de CMS pour Magentix. Toujours soucieux des vitesses d'exécution des scripts, j'ai pu exploiter cette fonctionnalité au maximum.

Mon choix pour l'élaboration d'un blog ou d'un petit ou moyen site se portera désormais sur MODx !

commentaires

Commentez cet article : CMS OpenSource MODx (1.0.4) : retour d'expérience