Bienvenue dans le monde de Drupal!

Alors de retour aux commandes de ce blogue, pour vous faire connaître un petit bijou d'application web : Drupal! Dans le monde des CMS Open Source (Source libre) Drupal est de plus en plus vu comme le leader incontesté. Beaucoup plus qu'un simple gestionnaire de contenu, Drupal se présente de plus en plus comme une véritable plateforme qui permets de créer relativement rapidement et facilement des applications web et des sites web réellement collaboratifs et dynamiques.

Présentation générale

Drupal à été lancé au début des années 2000 par Dries Buytaert qui reste encore aujourd'hui le "lead developer" et le guru de la très grande communauté Drupal. L'idée était de créer une plateforme qui faciliterait la mise en place de contenu de manière collaborative sur un site web utilisé par plusieurs personnes.

Drupal n'est donc pas une plateforme de blog, pour cela je pense qu'il serait préférable de regarder TypePad ou Wordpress, qui sont toutes deux spécialisées dans la création de blogues. Ne vous y trompez pas, Drupal peut facilement faire des blogues, d'ailleurs ce blogue est fièrement propulsé par Drupal, mais disons que faire un blogue en drupal demandera de la patience et un bon apprentissage pour le néophyte. Par contre, la puissance de votre site n'en sera que décuplée si vous prenez le temps d'apprendre et de connaître le fonctionnement de Drupal et de ses modules.

Drupal, totalement gratuit et source libre

Le système Drupal est totalement gratuit et téléchargeable depuis la page d'accueil du projet, vous aurez besoin d'un hébergement web ou d'un serveur web installé en mode local sur votre machine pour le faire rouler... car la plateforme n'offre pas d'hébergement.

Pour une bonne solution de serveur web en mode local, je vous recommande le 'stack' Apache2Triad, si vous êtes sous windows.. Si vous êtes sous Linux, vous savez déjà surement comment faire. Wink

Le coeur de Drupal: la simplicité volontaire

Drupal fonctionne littéralement comme un jeu de lego, chaque pièce prise toute seule peut sembler inutile, mais ce n'est qu'une fois tous les blocs rassemblés que Drupal prends tout son sens et impressionne par sa puissance et sa flexibilité.

Drupal en tant que tel, c'est surtout un framework qui propose un 'core' (coeur) qui est la base du site. Le core de Drupal s'occupe des choses basiques comme l'identification et le système de gestion des membres (permissions, rôles, mots de passe, etc), mais aussi du système de publication de contenu (nodes), ainsi que des commentaires et de la gestion des adresses pour chacune de vos pages. Bien que le 'core' de Drupal soit extrêment simpliste, il jette les bases pour en arriver à créer pratiquement n'importe quel type de site. Deux des aspects les plus extraordinaires de Drupal sont sont système de catégorisation de contenu ultra puissant, qui peut gèrer des catégories de plusieurs niveaux, avec des synonymes, des catégories reliées, etc... Ainsi que le système CCK (Content Creation Kit) qui permets à l'admin d'un site de créer n'importe quel type de page en un clin d'oeil.

Vous pouvez par exemple créer facilement trois types de contenu : memo, news et, disons petites annonces. Le core de drupal va créer pour vous toutes les entrées nécessaires dans la base de données ainsi que dans les menus pour pouvoir gèrer et ajouter du contenu de ces trois types différents.

Notez aussi que vous pouvez assigner des catégories pour chaque type de contenu de manière indépendante, par exemple vous pourriez créer des catégories différentes pour les pages "news" et pour les pages "petites annonces" qui n'ont manifestement pas besoin des mêmes catégories... Aussi avec le module CCK (disponible en téléchargement gratuit) vous pouvez éventuellement ajouter des champs à n'importe quel type de contenu, sans devoir coder quoique ce soit.

Exemple de la puissance de CCK + Drupal

Afin de clarifier la puissance de Drupal + CCK, laissez moi vous donner un exemple très simple. Disons que vous aimeriez faire un site pour héberger des petites annonces pour les amateurs de guitare, rien de plus simple avec Drupal.

Il vous suffit de créer un "type de contenu" nommé " Annonce". Une fois le type de contenu crée, vous pouvez ajouter autant de champs que vous voulez... Nous avons besoin d'un champ pour la description de l'objet (champ texte), un champ pour le prix (texte), un champ pour la photo de l'objet (champ image), un champ pour écrire ses infos de contact (champ tél, ou champ text pour l'adresse)... Voilà, votre nouveau type de contenu est pratiquement prêt... Du moins la base! Tout cela sans avoir ajouté une seule ligne de code!

Maintenant que vous avez un type de contenu, vous pouvez le lier à vos catégories, comme par exemple les marques de guitare, ou n'importe quelle catégorie reliée au type de contenu que vous avez crée.

Les limites sont désormais votre imagination et votre volonté et non plus seulement votre capacité à apprendre un langage de programmation pour créer des sites avancés.

 

Les modules de Drupal, les lego du webmaster

Comme je l'ai mentionné plus haut, la force de Drupal vient de son aspect modulaire, qui vous permets de n'ajouter que les fonctions que vous avez besoin, au fur et à mesure que vous en avez besoin. Si cela peut sembler déconcertant au début, vous ne pourrez pas y échapper car cela fait vraiment partie de la philosophie de Drupal, c'est à dire que chaque module apporte une fonction bien précise, et que la fonctionnalité d'un site se créer en ajoutant plusieurs modules qui travaillent les uns avec les autres. Il n'est pas rare pour un site complexe d'avoir des dizaines de modules installés sans que cela ne vienne compromettre la vitesse du site ou sa flexibilité, au contraire!

Sélection de mes modules favoris

CCK: Permets de créer n'importe quel type de contenu et y ajouter le nombre de champs que l'on veut

Taxonomy: Module qui permets de catégoriser le contenu du site en différentes catégories et sous catégories... Notez que les types de contenu ne sont pas des catégories comme sous la plupart des autres CMS, mais que dans Drupal, tous les types de contenu peuvent partager les mêmes catégories, ou avoir un ensemble de catégories séparées pour chaque type de contenu...

Views: Le module views est une application qui permets de construire des listes dynamiques de contenu basés sur des critères et des filtres. Idéal pour présenter tout le contenu d'une telle catégorie, le contenu le plus populaire, ou n'importe quelle autre liste semblable. Ce qui est intéressant c'est que le module views accepte les arguments, ce qui permets de créer une seule page qui peut s'occuper de tout le site par exemple. Par exemple si on crée une vue pour voir le contenu crée par un membre du site, la vue attends l'argument ( le nom de l'usager) et génère la liste sur demande. La même vue sert donc à voir le contenu de n'improte quel membre, au lieu de devoir génèrer une liste par membre sur le serveur...

Locations + Gmap: Ces deux modules permettent de facilement assigner des informations géographiques à n'importe quel contenu. Idéal pour un site ou les gens peuvent indiquer leur localisation... On peut intégrer un 'champ' localisation sur n'importe quel type de contenu, afin de recherche du contenu par une carte google par exemple... Idéal pour les sites de petites annonces, de rencontres, de pages jaunes, etc...

Image: Le module image, comme son nom l'indique permets d'ajouter des fonctions de gestion des images et de galeries photos sur un site en Drupal. Idéal pour les blogs, surtout en collaboration avec les modules Img_assist et TinyMce, qui permettent d'intégrer facilement et rapidement des images dans le texte. Notez qu'il existe aussi un champ 'image' pour le module CCK qui permets lui aussi d'intégrer des images dans un texte avec Drupal.

Book module: Ce module permets de créer des 'pages collaboratives' à la wiki, afin de permettre aux membres d'un site de créer des guides avec une hiérarchie, mais aussi de collaborer de manière commune à l'écriture de contenu. Notez que Drupal compte un ensemble d'une dizaine de modules qui permettent relativement aisément de copier exactement le fonctionnement d'un wiki.

Calendar et Date API :Ces deux modules permettent de transformer Drupal en un véritable portail communautaire axé sur la promotion et présentation d'événements. Vous pouvez afficher vos événements sur des calendriers, ainsi qu'ajouter un champ 'date' à vos contenus CCK. Idéal pour créer un système de gestion de tâches en Intranet... (On peut facilement ajouter une date limite pour un projet par exemple... en installant un champ date sur un contenu CCK)...

TinyMCE: Le module TinyMCE permets d'intégrer l'éditeur WYSIWYG TinyMCE à n'importe quelle installation Drupal, pour le bonheur de vos utilisateurs qui ne veulent pas savoir comment utiliser des tags html de base... ou même du BBCode.

Bref, comme vous le voyez, les modules Drupal permettent d'accomplir des choses que les non programmeurs pouvaient seulement rêver d'accomplir en temps normal. Drupal ouvre toutes les portes, à vous ensuite de voir si vous êtes prêts à apprendre le fonctionnement et à vous impliquer dans la communauté.

 

Est-il réellement possible d'accomplir quelque chose de bien sans savoir coder le php?

Bien que la connaissance de php / mysql, soit évidemment un atout, je crois que Drupal est une des plateformes qui vous permets d'accomplir le plus sans ajouter ne serais-ce qu'une ligne de code. La preuve, je suis moi même un néophyte total dans le domaine de la programmation et je suis arrivé à créer des portails qui jouissent aujourd'hui d'une bonne popularité et qui offrent plusieurs services pratiques. Je donnerais en exemple mon premier site en Drupal, www.monchien.info.

Ce site permets aux amoureux des chiens de poster une page pour présenter leur toutou, mais aussi propose un forum, des galeries photos, des guides de races collaboratifs, un annuaire de liens, des pages jaunes pour les éleveurs (avec une carte google maps pour bien les situer), ainsi que plusieurs autres petites choses drôles, comme un digg-like des meilleurs noms de chiens...Tongue out

Au fur et à mesure que je vais lancer des projets en Drupal (j'en ai deux gros en route pour le début mai) je vais vous les présenter en détail, en expliquant quels modules j'ai utilisé.

Mise en garde : Bien que Drupal permette de faire des sites sans savoir coder le php, il peut arriver que la fonctionnalité ou le module dont vous avez besoin n'existe pas... Dans ce cas, si vous ne savez pas programmer, il vous restera toujours l'option de payer pour avoir des modules faits sur mesure par des programmeurs dans la communauté Drupal. Je l'ai fait plusieurs fois personnellement et je n'ai jamais été déçu de cette pratique. Cela vous aide aussi à vous faire connaître dans la communauté, puisque comme dans toutes les communautés Open Source, le karma compte pour beaucoup!

Liens pratiques pour en savoir plus

Drupal.org // Accueil du projet Drupal

Télécharger la dernière version stable (5.1) // 5.1 la version la plus sexy!

Drupalfr // Communauté autour de Drupal en français

 

J'espère que cette petite présentation vous mets l'eau à la bouche... J'aimerais aussi avoir vos commentaires au sujet de drupal, si vous l'avez déjà utilisé...

Alexis