Drupal, Joomla, WordPress – Avantages et inconvénients de Drupal par rapport à Joomla, WordPress, un comparatif



Le web regorge de comparatif entre les CMS les populaires du Web : Drupal, Joomla, WordPress. Cela fait un certain temps que cet article mijote au sein de l’équipe, un comparatif exhaustif mais synthétique sur une lecture comparée des trois CMS sur la base de notre expérience de professionnels et d’experts du web et des CMS. On a tenté à chaque fois de rattacher l’expérience utilisateur sous les 3 CMS, en partant de Drupal, qui est à notre avis le CMS le plus abouti du marché mais dont la courbe d’apprentissage est la plus longue à l’inverse de Joomla et de WordPress. Or le temps, c’est de l’argent….

Références sous Drupal

Quelques-unes des références de poids de Drupal dans le monde de l’Internet, notamment dans le monde de la presse, la musique, le corporate et même dans la brasserie. C’est notre préféré ici chez Hecube, leffe.com :):)

Autant de raisons objectives de ne pas négliger Drupal.

Concept – Le concept essentiel de Drupal : un sac de noeuds

La gestion de contenu sous Drupal s’articule autour de deux concepts fondamentaux qui sont les suivants :

  1. NODE : (NOEUD) Chaque élément de contenu dans Drupal, de la page statique à l’article de blog en passant par un sondage par exemple, est appelé un noeud. Tout le contenu est inséré sous forme de node ou noeud.
  2. BLOCK : (BLOCK) Les block sont des éléments dont vous pouvez disposer à différent endroits dans la page.

Ces deux éléments sont éminemment polyvalents et abstraits à l’inverse des éléments de contenu (containers) à disposition dans Joomla ou WordPress. Dans ces derniers, cela se résume à des articles ou des pages, ce qui laisse peu de choix pour intégrer un contenu très différent.

Concept – le node

Dans Drupal, le réceptacle du contenu est le node. Chaque Node comprend un champs Titleet un champs Body

équivalence WP/Drupal :

  • Story équivaut à l’article (post) dans WP
  • Page équivaut à la page (page) dans WP

On peut fonctionner par analogie avec le xml, puisque il est question de “noeud” (node) comme dans un fichier xml. Schématiquement, la représentation de l’élément node de contenu de Drupal au format xml se ferait à l’aide d’un attribut.

<node>
	<title>Mon titre</title>
	<body>Le contenu figurant dans une page</body>
</node>

C’est cette capacité d’abstraction qui est à la fois sa principale difficulté et sa plus grande force. Avec drupal, vous pouvez faire une meta-représentation de n’importe quel type contenu

Prenons, un node nommé vidéo. Ce node vous pouvez lui attacher n’importe quel type d’attribut comme en xml.

<node type="video">
	<title>Le titre de la vid&eacute;o</title>
	<description>Le contenu figurant dans une page</description>
 
</node>

équivalence Joomla/Drupal :
De manière un peu abusive, on pourrait dire :

  • Story équivaut à l’article dynamique dans Joomla
  • Page équivaut à à l’article statique dans Joomla

Concept – Le champs body présent dans les deux containers "Page" et "Story" sous Drupal

  • Body comprend un summary ou teaser, qui affiche un extrait.
  • Body comprend un full view affiche la totalité du contenu.

Concept – Le block sous Drupal

Le contenu dans “Block” sert d’affichage secondaire de fonctionnalités transverses tel que le nuage de mots, la boite de recherche….

Concept – La gestion des images sous Drupal

L’action d’insérer une image dans une page est significative de la complexité du CMS drupal. Il n’est pas question à priori de gestionnaire de médias, vous devez envoyer votre image en FTP puis ensuite faire une insertion en html

Source : http://drupalfr.org/document/inserer_une_image_dans_un_contenu

Concept – L’envoie d’images ou upload d’images

Les images arrivent dans ce répertoire :

Exemple URL images

[chemin_vers_drupal]/site/sites/default/files/images/mypic.jpg
[chemin_vers_drupal]/site/sites/default/files/mypic.jpg

Les liens vers les images sont de ce type. C’est le manière de mettre une image dans une “page” ou une “story”. Pour ceux qui sont familiers de WP ou de Joomla.

La gestion des images et des médias est bien plus complexe sous Drupal que sous les deux autres CMS: Joomla, WordPress. Pour ces deux derniers CMS, le gestionnaire de médias est extrêmement intuitif et parle de lui-même, notamment dans WordPress, voir les deux articles ci-dessous.

Du code d’insertion de la balise image

	<img src="files/images/nom_du_fichier.ext" alt="texte_alternatif" />
 
	<img src="[chemin_vers_drupal]/site/sites/default/files/images/mypic.jpg" alt="texte_alternatif" />
	<img src="files/images/sam_gal_1_1.preview.jpg" alt="texte_alternatif" />
 
	<img src="[chemin_vers_drupal]/site/sites/default/files/images/mypic.jpg" alt="texte_alternatif" />
	<img src="[chemin_vers_drupal]/site/sites/default/files/images/mypic.jpg" alt="texte_alternatif" />

Concept – Les modules sous Drupal

Les modules sont des extensions fonctionnelles proposés au site géré sous Drupal. le concept équivalent sous WP est le plugin toutefois le module sous Drupal offre parfois des accroissements fonctionnelles bien plus conséquents que les simples plugins WP.

Les modules les plus avancés sont souvent accompagnés de “dependencies”, c’est à dire des lots de fonctionnalités supplémentaires qui étendent tel ou tel aspect d’un module de base exemple la vue en vignette d’un module de galerie photos.

ATTENTION : Désinstaller un module supprime les données qui lui sont attachées.


On trouve tout type de module, par exemple, vous pouvez installer sous Drupal des modules aussi variés que les suivants, qui étendent indifféremment les fonctionnalités du frontend et du backend :

Exemple : Activer module Path (frontend)
Editer une page, puis changer l’url, pour une version explicite. Le path est équivalent au slug de WP.

Exemple : module admin_menu exemple d’installation d’un module (frontend/backend)
C’est module qui est grandement utile car il aide à l’administration

Source : http://drupal.org/project/admin_menu

Règle : Où installer modules et thèmes supplémentaires
Toujours installer les thèmes ou les modules dans /sites/all/themes/ et /sites/all/modules/

Concept – Le contrôle d’accès et gestion utilisateur sous Drupal

Drupal offre une très grande granularité dans la gestion des droits des utilisateurs. Il est possible de créer des profils sur mesure ce qui n’est par exemple pas la cas sous WordPress.

C’est un des points forts de Drupal, cette gestion des utilisateurs, notamment pour permettre des accès restreints à certains sections du site. A titre de comparaison, autant WP est médiocre pour ce type de pratique autant Joomla offre un peu plus de possibilité.

équivalence Joomla/Drupal
Le contrôle d’accès et gestion utilisateur sous Joomla n’offre qu’une équivalence très relative à Drupal

équivalence WP/Drupal
WP est nativement totalement incapable sur cet aspect.

Exemple : module Contact exemple d’installation d’un module
Il s’agit de mettre en place un formulaire en activant le module, créer le formulaire puis ensuite le rende disponible dans le menu “Navigation”.

équivalence WP/Joomla/Drupal
On est pas loin du même concept sous WP où vous allez devoir installer un plugin pour permettre la création d’un formulaire ou sous joomla, il vous faudra un module ou un component.

Gestion de contenu – L’arborescence d’un site (Taxonomy) sous Drupal

Il s’agit de ce que l’on nomme simplement la catégorisation qui se fait soit par catégorie unique ou terme (tags). Il est possible d’effectuer une multi-catégorisation.

Un exemple de taxonomy pour comprendre à quoi cela correspond

  • Les autos
    • Renault
    • Jaguar
    • Alfa Romeo
  • Les vélos
    • Bianchi
    • Cannondale
    • Giant
  • Les motos
    • Yamaha
    • Honda
    • Triumph
    • Suzuki

Exemple : module admin_menu exemple d’installation d’un module
Pour visualiser, les capacités étendues de taxonomie, on peut télécharger et activer module taxonomy_menu.

Source : http://drupal.org/project/taxonomy_menu

ATTENTION : C’est un concept essentiel. La taxonomie sert d’une part à catégoriser mais d’autre part à tagguer les articles. En fait, c’est un outil complet pour tagguer, classer et ordonner tout le contenu du site. Deux paramètres essentiels : Content types (Blog entry, Page, Poll…etc.).

équivalence WP/Joomla/Drupal
Drupal permet de gérer tout type de contenu et ensuite de les tagguer et de les catégoriser. Joomla ou WP ont des types de contenu définis par défaut et ne permettent pas de nouveau type enfin à moins dans la cas de WP d’utiliser des post_type.
Pour WP, article (post), page (page) et dans une moindre mesure liens (links) ou média.
Pour Joomla, articles statiques ou dynamiques.
Pour Drupal, Story et Page

Cette possibilité de créer des nouveau type de contenu et de tagguage fait diverger totalement Drupal de Joomla ou WordPress puisque Drupal permet d’augmenter considérablement via “Content types” la typologie de contenu.

Un exemple : vous devez créer un catalogue de films, avec Drupal, vous pourrez créer un “Content types” nommé “movie page” auquel vous pourrez donner des caractéristiques particulières. Dans WP ou Joomla, une telle chose est impossible.

Gestion de contenu – Blog

Pour créer un blog, la démarche est la suivante. Il faut activer le module Blog, cela crée le type de contenu (blog entry). Il reste ensuite à catégoriser et tagguer, donc taxonomie. Il faut créer 2 entrées (vocabularies): Categorie, Tags. Ensuite, créer des blogs entries en les classant dans “Categorie” et en rajoutant des mots-clés dans “Tags”.

  • analyse
  • audiovisuel
  • auteurs
  • écriture
  • journalisme
  • narration
  • technique
  • webdoc
  • webfiction

Gestion de contenu – Modération

Pour le coup, Drupal, Joomla et WordPress présentent les mêmes caractéristiques en ce qui concerne la modération, notamment celle des commentaires des utilisateurs.

Gestion de contenu – Gérer le flot de publication

Il est possible de créer des actions pour des utilisateurs inscrits au site.
Administer > Site configuration > Actions (admin/settings/actions)

Il vous faut ensuite activer module Trigger et ensuite il est possible d’affecter des alertes à des utilisateurs de Drupal.

équivalence WP/Joomla/Drupal
Drupal permet de gérer nativement ce type d’alertes et une ganularité très importante dans les droits de publication par rapport à WP et Joomla. C’est un des actifs de Drupal mais cette gestion du Workflow reste assez complexe à maitriser et souvent sur-dimensionné par rapport aux besoins éditoriaux d’un site classique. Toutefois, cette fine gestion des alertes est à notre sens, une des raisons obejetives de la percée de Drupal dans le monde de la presse Cf références car pour ce genre de site, une gestion affinée des utilisateurs et de leurs droits ainsi que la possibilité d’automatiser autant que possible la validation des procédures de publication est indispensable !

Gestion de contenu – Photo Gallery

C’est un exemple classique dans un site web, publier une galerie de photos sans trop se prendre la tête ! Là pour le coup le niveau d’abstraction de Drupal joue clairement en sa défaveur mais bon… Il est en effet beaucoup plus facile de publier une galerie de photos sous WP ou Joomla, après faire évoluer ces galeries restent plus problématique et là Drupal reprend l’avantage.

Drupal possède un arsenal important pour la gestion des images et la création de galerie de photos… On va clairement sortir l’artillerie pour publier 3 photos mais enfin il faut ce qu’il faut quand il faut comme il est dit dans les tontons flingeurs.

Pour une bonne gestion des images, il vous faudra les modules suivants :

Les pré-requis pour la gestion des images sont les suivants :
– Les deux modules suivants CKK, Filefield installés et activés.
– Activer dans l’option Clean URLs dans Home › Administer › Site configuration
– Avoir la librairie GD installée pour manipuler les images.

équivalence WP/Joomla/Drupal

WP gère aussi correctement et nativement les images notamment via un puissant et très intuitif gestionnaire de medias et une pseudo balise gallery pour afficher des galeries de photos sur votre site. Le toute sans un processus de publication fastidieux. Quant à joomla, il est en mesure de gérer pratiquement tout alors pourquoi pas des galeries d’images ! La vraie question qui demeure pour Joomla est souvent la même et peut se résumer ainsi : à pouvoir tout gérer, on finit par gérer le tout au prix de contorsions incroyables !

Paradoxalement, la profusion de paramétrage possible sous Drupal peut rendre terriblement complexe la création d’une simple galerie de photos. On se contentera d’utiliser CCK et Views pour créer rapidement une galerie de photos personnalisable.

Comme on peut s’en douter un des modules compris dans CKK se nomme ImageField. Comme par hasard, ce module sera très utile dans la manipulation des images.

Le fichier téléchargé => le chemin sous votre Drupal
custom_pagers-6.x-1.0-beta2.tar.gz => /votre_repertoire_drupal/modules/custom_pagers

imagecache-6.x-2.0-beta10.tar.gz => /votre_repertoire_drupal/modules/imagecache

imagefield-6.x-3.7.tar.gz => /votre_repertoire_drupal/modules/imagefield

imageapi-6.x-1.8.tar.gz => /votre_repertoire_drupal/modules/imageapi

L’installation de Getid3

Une petite difficulté concernant l’installation de Getid3
Source : http://drupal.org/project/getid3

Le message d’erreur qui s’affiche pour Getid3
The getID3() module cannot find the getID3 library used to read and write ID3 tags. The site administrator will need to verify that it is installed and then update the settings.

Comment installer et configurer getID3()

Il va falloir télécharger et installer la librairie getID3 manuellement sur le serveur.

  1. Le module getid3 s’installe comme un autre module mais tout ne fait que commencer.
  2. Il faut en effet installer la librairie. Ce qui consiste à se rendre dans le répertoire racine de votre installation Drupal et à créer un répertoire sites/all/libraries/getid3.
  3. Dans ce répertoire, vous allez installer la dernière version de getid3 à http://sourceforge.net/projects/getid3/files/
  4. Une fois coller les fichiers de getid3-1.7.9, vous pouvez supprimer le répertoire demos
  5. Se rendre dans Administer > Site building > Modules et activer le module GetID3, si ce n’est pas déjà fait.
  6. Se rendre dans Administer > Site configuration > getID3. Pour voir si getid3 est correctement installé. Normalement, le chemin et la version de getid3 sont indiqués.

équivalence WP/Joomla/Drupal
Pour simplement publier une galerie de photos, il vous faudra installer un certain nombre de modules et de nombreuses dépendances à ces mêmes modules : imagefield, getid3…etc.
Il est clair qu’il faut être patient et surtout un peu aguerri côté serveur pour installer l’ensemble. A l’inverse dans WP notamment ou de Joomla, tout est intuitif et facile à installer mais moins personnalisable. Drupal ne vous affranchie que très rarement de l’obligation d’avoir le secours d’un administrateur serveur ou développeur un peu expérimenté. Avec ce simple exemple de creation de galerie, on comprend très clairement pourquoi Drupal essaime auprès des professionnels et non du grand public !

Tout est à installer et à définir sous Drupal, on comprend donc pourquoi le temps d’apprentissage te de maitrise d’un tel CMS coute un bras en temps notamment.

Création du content photo
On va créer un content type nommé photo et attaché à ce content type, un field nommé lui aussi photo

La paramétrage de ce field (champs) est assez évident.

En clair, pour créer une galerie de photos sous Drupal, il faut créer le type puis le réceptacle pour attacher chaque photo.

Webdesign – Thèmes

Ce point est abordée rapidement. On vous invité à vous reporter aux autres articles cités en bas de page et sur ce blog qui traite de cette question très importante. La seule chose à retenir est de placer le .tar.gz dans le répertoire sites/all/themes. Créer le répertoire “themes” si il n’existe pas ! Comme pour “modules”.

Il est possible de choisir un thème différent pour le frontend et la backend. Voir (Administration theme).

Source : http://themegarden.org/drupal6/

Source : http://drupal.org/project/enlight

Gérer un site multilingue sous Drupal

Pour une fois qu’un CMS est d’origine européenne, le coup été bien prévu. Il est possible utiliser un .po comme dans WP.

Pour déployer facilement un site multi-lingue et se faire la main.
Source : http://multilingual.usingdrupal.com/install.php

Une “traduction” est simplement un fichier ou un ensemble de fichiers qui suivent un format standardisé. Les fichiers de traduction qui suivent ce format ont une extension de fichier particulière,. po, qui signifie
pour objet portatif. Un fichier po. est un simple fichier texte qui identifie des chaînes de texte et une langue particulière de la traduction des chaînes de caractères. Dans Drupal, les traductions contiennent une liste de
toutes les chaînes de l’interface utilisateur, ainsi que leurs versions traduites.

équivalence WP/Drupal
La fonction t() fonction est l’équivalent de la fonction dans WP _e (‘phrase-en-anglais’, ‘nom-du-theme’);

Quelques ressources supplémentaires

Traduire les interfaces utilisateurs (UI)


La traduction du texte sur les UI (User Interface), c’est un des points essentiels, c’est à dire déployer un site intégralement traduit notamment tous les labels des boutons, les liens automatiques, les modules….etc.

La marche à suivre…

  1. Décompresser l’archive à la racine de votre site sous Drupal, là où se trouve la page index.php par exemple pour avoir une version FR fr-6.x-1.0.tar.gz
  2. Il faut activer le module Locale dans admin/build/modules
    Ensuite, il faut donner des autorisation pour permettre la traduction /admin/user/permissions
  3. Se rendre ensuite dans admin/settings/language, ajouter une langue… Le français par exemple… Vous determinez ici le sens de lecture de gauche à droite. Ce qui offre la possibilité de mettre de l’hébreu ou l’arabe qui se lise de droite à gauche.

On a donc une preuve sur la facilité de la gestion des langues via Drupal bien meilleur en un sens que que Joomla ou WordPress.

Dans la cas de WordPress, vous pouvez aller voir les articles qui abordent la question de la gestion des langues.

  • WordPress – Les plugins de traduction ou comment traduire son blog
    http://social.hecube.net/blog/2009/09/04/wordpress-les-plugins-de-traduction-ou-comment-traduire-son-blog/
  • WordPress, traduction – Traduire son site WordPress et ses plugins en plusieurs langues
    http://social.hecube.net/blog/2010/02/22/wordpress-traduction-traduire-votre-site-en-plusieurs-langues-avec-transposh/
  • WordPress, poEdit – localiser avec poEdit un thème WordPress à l’aide du fichier de langue
    http://social.hecube.net/blog/2009/12/17/wordpress-poedit-localiser-avec-poedit-un-theme-wordpress-a-laide-du-fichier-de-langue/
  • Quelques explications intéressantes sur une marche à suivre possible si vopus souhaitez aller plus loin dans la tradcution de votre Drupal 6.x

    Ce dont il n’est pas question dans cet article

    Cet article n’aborde pas les points suivants qui ont déjà abondamment couverts dans des articles précédents dans ce blog : la gestion des Events, la création d’une boutique en ligne via Drupal, la conception et la réalisation d’un thème sous Drupal 6.x… etc

    Pour mémoire, ces sujets ont été pas mal auscultés au sein de ce blog…

    La création d’une boutique en ligne sous Drupal

    Concevoir un thème pour votre Drupal 6.x qui a été abondamment évoqué !