Vous êtes ici : Accueil / 2011 / Juillet / Comparaison des moteurs de CMS sous Django

Comparaison des moteurs de CMS sous Django

écrit le 18/07/2011 Par Yohann Gabory
Cet article propose une comparaison des moteurs de blog disponibles sous Django. Leurs points forts, leurs points faibles mais surtout quand utiliser l'un de ces moteurs.

Les CMS testés

Django CMS

https://www.django-cms.org/

Django CMS est sans doute le CMS sous Django le plus utilisé. Disposant de nombreuses fonctionnalités : versionnement des pages, toolbar dans l'admin, gestionnaire de téléchargement, workflow editorial, edition en ligne ... Le tout dans une interface riche et claire. Le nombre de fonctionnalité est vraiment impressionnant et c'est à ce jour le CMS le plus abouti en Django.

 

A utiliser si vous cherchez un CMS complet et prêt à l'emploi.

FeinCMS

http://www.feinheit.ch/media/labs/feincms/

FeinCMS se décrit lui même comme un gestionnaire de contenu "stupide". Reprenant à son compte la devise KISS (Keep It Stupidly Simple). Il se propose de créer une interface d'administration pour vos pages, gère le principe de sections, qui sont des sortes de placeholder qui indiquent au CMS où s'affichera votre contenu sur la page, vous permet de modifier la disposition de ces placeholder en glissé-déposé, il permet d'organiser les contenus ... Et c'est tout.

Cette approche peu sembler légère mais en réalité, elle permet d'obtenir toute la flexibilité nécessaire au développement de votre CMS.

Par exemple, créer son propre type de contenu est très simple et pour une fois on n'est pas obligé de proposer un horrible éditeur WYSIWYG pour l'édition de texte par exemple.

Mais FeinCMS n'est pas si "stupide" que cela. La liste des types de contenu livrés par défaut est me semble-t'il assez intéressante :

  • application content permet d'inclure des applications tierces
  • comment content génère une liste de commentaire et un formulaire pour en créer de nouveaux
  • contact form gère l'indispensable page de contact
  • media library integration gère les contenus media nécessitant une méthode de rendu spécifique
  • raw content pour intégrer du contenu type flash, javascript ( et donc de placer du javascript directement depuis le navigateur)
  • et bien d'autre ...

En définitive, FeinCMS est un très bonne surprise dans ce comparatif : les fonctionnalités sont riches mais ne se mettent pas au travers de votre route, le développement de nouvelles fonctions est facilité... C'est un CMS à préférer aux autres si vous avez besoins de quelque chose de vraiment versatile et qui sait se faire oublier. En revanche, n'oubliez pas que vous aurez plus de travail de mise en place qu'avec une solution clé en main comme DjangoCMS par exemple.

Pinax

http://pinaxproject.com/

Pinax est décrit par ses créateurs comme une plate-forme de développement basée sur Django. Il permet un developpement rapide d'application avec un champ d'action assez large.

Le principe de Pinax est de proposer un ensemble d'applications réutilisables très large :

  • gestion des comptes
  • openid
  • vérification par email
  • profile
  • notification
  • wiki
  • forum
  • blog
  • etc...

  Originellement conçu comme une démonstration de site web social, pinax est aujourd'hui utilisé comme intranet, gestionnaire d'événement, plate-forme d'apprentissage en ligne etc...

Pinax est un choix judicieux si vous cherchez un CMS tourné vers les services sociaux et que vous souhaitez bénéficier de la panoplie d'applications réutilisables avec lesquelles il est fournis mais que vous souhaitez aussi garder un contrôle fort de ce que vous souhaitez utiliser.

Merengue

http://www.merengueproject.org/

Merengue peut se comparer à DjangoCMS du point de vue des fonctionnalités :

Il est facile d'installer et de créer des plugins pour Merengue et il y a un bon nombre de plugins présents par défaut, 28 au total (forum, facebook, calendrier, éditeur WYSIWYG dans l'admin et recherche Google par exemple).

Le thème est lui aussi facile à changer (une case à cocher dans l'admin) et à créer.

Au niveau du contenu, il faut créer une section pour ajouter une nouvelle page. Il faut ensuite y ajouter un document, qui sera le contenu de la page. Et dans ce document, il faut ajouter des sections qui contiendront le texte à rajouter au document. Il faut ensuite retourner dans la section et ajouter le document à la section.

Cette approche est il faut bien le dire assez peu intuitive. En revanche, Si le document possède déjà une section, on n'est pas obligé de répéter toutes ces opérations : on peut éditer le document directement sur l'interface normale, avec un éditeur WYSIWYG.

Mezzanine

http://mezzanine.jupo.org/

Le Principe de Mezzanine est de proposer beaucoup de choses par défaut. Contrairement à Pinax par exemple, l'idée n'est pas d'utiliser de nombreuses applications réutilisables mais de proposer un ensemble cohérent de fonctionnalités de base.

Mezzanine se veut comme l'équivalent en Django de moteur comme Wordpress. On retrouve d'ailleurs dans ses fonctionnalités l'édition en ligne ( directement depuis le front office, la gestion de workflow (brouillon/publié) mais aussi d'autre choses intéressantes comme la publication programmée.

En y regardant de plus prêt, Mezzanine est plus un moteur de blog que réellement un CMS. C'est donc un choix judicieux lorsque l'on souhaite mettre en place un gestionnaire de publication mais bien qu'il possède une api pour des types de contenu custom, je ne le conseillerais pas pour mettre en place un vrai CMS. De plus, si le parti-pris d'un ensemble monolithique pourra plaire à certain, il est assez peu pythonique et pourra rebuter les autres.

Ce tour d'horizon des principaux moteurs de CMS sous Django nous montre bien qu'il n'existe pas encore véritablement d'application capable de rivaliser avec les ténors du genre comme Plone par exemple. En revanche, on trouve des applications prometteuses s'appuyant sur la très grande flexibilité de Django.

Actions sur le document