Voilà, voilà... Fin de l'aventure...

 

Fermeture de kolossaldrupal.org dans...


Bonjour tout le monde,

Drupal évolue, les versions changent et Kolossaldrupal.org était essentiellement consacré à la version 6 de Drupal.

Autant dire que les infos présentées ici commencent à dater...

Faute de temps, je ne peux plus garder le site Kolossaldrupal à jour...

Je vous aurais bien proposé de reprendre le flambeau mais... c'est tellement simple de nos jours de se faire son propre site à soi...Pourquoi s'embêter alors ? :-)

Ce site restera donc en l'état, tel qu'il était en 2011...

Ah la la ! Cela ne nous rajeunit pas !

Manuel Vila - Avril 2016

Un aperçu de Drupal

référence sur drupal.org : 19 Mars 2009 - 00h28
http://drupal.org/getting-started/before/overview

Bien que Drupal soit souvent décrit comme étant un « Content Management System » (CMS, Système de Gestion de Contenu), il est aussi un « Content Management Framework » (CMF , « Charpente » pour la Gestion de Contenu).

En d'autres termes, contrairement à un strict CMS, il est davantage conçu pour être paramétrable et personnalisable. Imaginez une échelle de mesure dont l'une des extrémités est intitulée « spécifique » et l'autre « abstrait ». Sur la graduation « spécifique » vous aurez quelque chose de très spécialisé car conçu pour une tâche bien précise, disons un marteau. A l'autre extrémité de l'échelle, vous aurez quelque chose de plus abstrait, pouvant être configuré comme vous le souhaitez, pour une infinité de tâches, comme par exemple du bois ou une pièce de métal. Avec un bout de bois et un morceau de métal, vous pouvez faire un marteau, ou plein d'autres choses.

Évidemment, bien qu'un morceau de bois ou une pièce d'acier soient nettement plus « configurables » qu'un marteau, ils sont nettement moins utilisables puisque peu de gens ont les connaissances pour travailler ces matériaux bruts.

Drupal se positionne entre ces deux extrêmes et offre une sorte de « kit de construction » composé de modules pré-fabriqués qui peuvent être utilisés tels quels ou qui peuvent être paramétrés pour répondre à vos besoins.

Cette architecture fournit une incroyable souplesse tout en permettant à ceux qui ne sont pas programmeurs de concevoir des sites webs élaborés.

Il est important de comprendre ce principe d'abstraction car il est central dans tout ce que fait Drupal. Quand vous comprenez l'apport de ce principe, vous comprenez pourquoi cette approche constitue un argument fort pour l'utilisation de Drupal.

L'efficacité de l'abstraction

Imaginez que vous ayez un camion flambant neuf et un bateau, tous les deux en jouets. Tandis que vous vous amusez avec vous vous dites que ce serait bien si vous aviez un jouet dont certaines caractéristiques seraient celles d'un camion et d'autres celles d'un bateau. Mais, manque de chance, votre camion et votre bateau se trouvent du côté « spécifique » de l'échelle. Ils sont ce qu'ils sont et vous devez vous amuser avec tels qu'ils sont.

Maintenant, imaginez que quelqu'un vous donne une caisse remplie de pièces détachées, rangée par catégories. On vous explique que vous avez là un « kit de construction de véhicules » et que vous pouvez assembler les pièces comme vous le voulez, pour réaliser le véhicule que vous voulez, en ayant le choix de différentes carrosseries, habitacles, motorisations, etc. Maintenant votre camion/bateau devient réalité. Et au fur et à mesure que vous découvrez toutes ces pièces, vous réalisez que le camion/bateau n'est qu'un début.

Un grand nombre de systèmes de gestion de contenus se focalisent sur une seule façon de réaliser la gestion d'un site web, ils se situent sur l'extrémité « spécifique » de l'échelle. Bien qu'ils puissent utiliser de nombreux plug-ins pour étendre leurs fonctionnalités, ces plug-ins sont souvent écrits selon le même état d'esprit, axés sur leur propre façon de faire les choses. Drupal, avec cette idée d'abstraction inscrite dans ses gènes, est délibérément généraliste dans sa façon de faire les choses. Par exemple, au lieu de créer un « moteur de news » rigide, Drupal fournit l'architecture et les outils qui vous permettront d'assembler votre propre moteur de news, de façon à ce qu'il fasse exactement ce que vous voulez. Et comme cette architecture et ces outils ne vous enferment pas dans une approche rigide, vous pouvez les utiliser pour créer toutes sortes de « moteurs » et autres widgets. Cela signifie que lorsque vous connaîtrez certains des outils-clés de l'univers Drupal, vous réaliserez qu'ils peuvent être combinés à l'infini pour faire toutes sortes de choses que vous (et les créateurs du système ou des plug-ins Drupal) n'auriez imaginé auparavant.

Un exemple concret : disons que vous voulez une moteur de news qui vous laissent publier de nouveaux articles dans votre site, et que vous voulez mettre un petit widget en page d'accueil qui présente les cinq derniers articles. Ensuite vous décidez que vous voulez garder une trace des billets de blogs récents, et mettre une liste qui affiche les cinq derniers commentaires parmi ceux de la page d'accueil.

Avec un CMS dont le fonctionnement se situe du côté « spécifique » de l'échelle, vous aurez à chercher un module qui gère les news et qui permet également de mettre les présentations en page d'accueil (chose assez courante). Ensuite, vous devrez trouver un module qui tracera les derniers billets de blog et en affichera la liste en page d'accueil. Chaque module se contentant de pister, gérer et afficher les données qu'il manipule.

Mais que se passera-t-il lorsque surviendra une brillante idée sous la douche et que vous vouliez mixer ces deux idées en montrant une liste des billets de blogs sur les dernières news ? Triées sur le contributeur le plus actif ? Si vous utilisez un CMS « camion », vous aurez peut-être la chance, ou vous aurez besoin d'embaucher un développeur qui vous écrira votre module personnalisé. 

Avec un CMF conçu sur une idée d'abstraction, vous piocherez dans votre « caisse de pièces détachées » et les assemblerez rapidement. L'avantage d'une architecture comme celle de Drupal est que la généralisation et la standardisation dans la façon de faire les choses signifie que, pour construire un site web, il n'est question que d'assembler des éléments qui vont bien ensemble. Et, pour en revenir à la métaphore du « camion jouet », nous ne parlons pas de misérables petites briques qui ne vous permettent que d'approcher ce que vous voulez, la souplesse de Drupal est dans sa structure, et dans la « granularité » des contrôles qu'elle vous laisse, sur pratiquement tout ce que vous construisez.

Évidemment, cette souplesse a un revers. Alors qu'un camion jouet est simple à comprendre et prêt à l'emploi, un kit de construction demande, par nature, la lecture préalable de son mode d'emploi. Gardez cela à l'esprit, il ne s'agit pas de partir de rien, il s'agit d'apprendre à agencer des modules et des systèmes déjà existants pour aboutir à un site web personnalisé.

Drupal a volontairement été gardé souple, ce qui fait que sa puissance, et les façons d'accomplir certaines tâches, ne sembleront pas évidentes à ceux qui ne se seront pas familiarisés avec lui. Quoiqu'il en soit, après avoir investi un peu de votre temps, vous verrez qu'apprendre la façon dont opère Drupal vous ouvrira un nouveau monde de possibilités que vous ne pensiez pas possibles en dehors d'un programme sur-mesure. Vous laisserez probablement votre camion et votre bateau dormir à la cave.

Comment fait Drupal

Comme expliqué précédemment, la puissance de Drupal vient d'une approche plus abstraite pour la manipulation des fonctions et des contenus web. Les gens pensent souvent qu'un site web n'est qu'une collection de pages, parsemées de quelques fonctions (comme un blog ou un moteur de news). Quand ils se mettent à gérer leurs sites, ils le pensent en termes d'arborescence de pages qu'ils auront à créer et modifier.

Drupal, lui, traite la plupart des types de contenus comme étant des dérivés du même concept : le node. Les pages, les billets de blogs et les articles (ce sont des types de node) sont enregistrées dans un tronc commun, et le sitemap (son architecture) est une couche qui est conçue séparément par la gestion et la modification des menus de navigation. Cela ressemble fortement à la séparation que vous trouverez dans les pages satisfaisant aux normes de codage - XHTML fournit la structure des données, tandis que CSS s'occupe de leur présentation. Dans Drupal, les nodes contiennent les données structurées relatives à un billet de blog (telles que le titre, le contenu, l'auteur, la date) ou à un article ( le titre, le contenu, la date de publication) alors que le système de menu créé le plan du site sur une couche différente. D'autres éléments (les thèmes, les modules tels que Views et Panels) fournissent l'affichage du contenu des nodes.

Le truc sympa dans le fait de garder séparées ces éléments (layers) c'est qu'il est aisé de fournir des sites totalement différents aux différents types d'utilisateurs, simplement en leur affichant des menus de navigation différents, basés sur les infos de leurs login. Les pages peuvent être groupées différemment, affichées dans un ordre spécifique selon les besoins des utilisateurs, et différentes fonctions et contenus peuvent être montrés ou cachés selon le type d'utilisateur. Cela dépendra juste de l'utilisation que vous voulez créer.

Ok, alors un node, c'est quoi au juste ? A la base, un node est un groupe de données liées. Quand vous créez un billet de blog, vous créez en fait une collection de choses telles que le titre, le contenu, le lien  vers l'auteur, la date de création, etc. Certaines de ces données contiennent des informations qui seront affichées lorsque le node sera affiché. D'autres données contiennent des meta-data qui décrivent le node (comme la catégorie).

En conservant tous les nodes dans le même tronc commun au lieu de les repartir dans différents systèmes, Drupal s'assure qu'ils sont bâtis sur les mêmes fondations, et peuvent être manipulés de la même façon. Cela signifie qu'ils peuvent tous être remixés et leur affichage contrôlé au pixel près (This means that they can all be remixed with down-to-the-pixel control over how they are displayed ), et les données clés peuvent être utilisées, combinées pour organiser, chercher et relier les nodes avec d'autres nodes. Cette souplesse est à l'origine de puissantes capacités.

A nouveau, puisque l'idée d'abstraction est au cœur même de Drupal, au lieu de fabriquer des solutions spécifiques pour chaque cas particulier que l'on voudrait mettre en œuvre, les systèmes et les méthodologies ont été conçus pour manipuler des tâches plus générales, puis disposés (threaded) à travers tout le CMF. Cette façon générique de faire les choses signifie que lorsque vous avez appris à utiliser une méthodologie donnée, vous pouvez l'utiliser en tous lieux et commencer à enchaîner les choses de façon inventive.

Comme exemple, reprenons l'idée d'adapter le contenu d'un site au type de visiteur. Ce concept imprègne Drupal, aussi non seulement vous pouvez personnaliser le plan du site selon le type d'utilisateur, mais vous pouvez aussi montrer ou cacher des blocs (ce sont les données habituellement placées dans les barres latérales, telles que menus, commentaires récents, etc), changer le thème du site et même décider de la façon dont seront affichées les données du node et si un utilisateur peut ou non laisser un commentaire sur un node particulier. Tout cela, et plus encore, peut être basé sur la façon dont un utilisateur s'identifie.

Un mot sur les commentaires : voici une illustration supplémentaire de l'approche générique de Drupal. Les commentaires ne sont pas juste une partie d'un blog, puisqu'il n'y a pas vraiment de mécanique « blog » séparée. Les commentaires ont leur propre entité, et la possibilité de laisser des commentaires peut être enlevé des billets de blogs, des pages de livres (une sorte de wiki) et de toutes sortes de types de nodes, y compris ceux que vous créerez.

Collaboratif d'entrée

Créer un site web qui diffuse des infos du seul webmaster est une chose que beaucoup de CMS peuvent faire dès l'installation. Là où Drupal étincelle c'est lorsque vous voulez étendre cette possibilité à plusieurs intervenants. Là où certains systèmes tentent de verrouiller cette possibilité et demandent un parcours du combattant pour arriver à vos fins, l'idée d'une communauté collaborative est une idée qui a présidé depuis le début à l'architecture de Drupal.

Avec certains systèmes, vous pouvez mettre un blog en place et vous pouvez installer des fonctionnalités pour la gestion d'une communauté d'utilisateurs, mais que se passe-t-il lorsque vous voulez mettre un blog à disposition à chacun de vos utilisateurs, qu'ils pourront alimenter, afficher avec leurs propres thèmes, tout en générant des résumés d'autres blogs, des classements « top five », des liens et des profils personnalisés ? Que faire si vous voulez également intégrer un forum, un environnement wiki et donner à chaque utilisateur sa propre galerie de photos assortie de gestion de tags ?

L'aspect « communauté » fait partie du système Drupal, à tous les niveaux, aussi, assembler ces fonctionnalités et les configurer n'est pas très différent selon que vous fassiez un site « un à plusieurs » ou « plusieurs vers plusieurs ». Connecter les différentes possibilités de collaboration d'une communauté à chaque partie de votre site est quelque chose que Drupal fait très bien.

Démarrer rapidement, personnaliser largement

Avec tout ce discours sur la puissance et la souplesse de Drupal, vous pourriez penser que c'en est de trop pour un simple site d'informations, ne serait-ce qu'à cause du temps nécessaire pour sa configuration. Rien n'est plus loin de la vérité. Avec une simple connexion FTP et quelques questions de base relatives à la configuration du site, vous pouvez vous connecter à votre base de données et avoir un site Drupal fonctionnel en très peu de temps.

Choisissez l'un des thèmes fournis avec Drupal et commencez à ajouter vos contenus. Vous voulez que les visiteurs se connectent ? Activez ou désactivez la connexion. Vous voulez utiliser quelques-uns des outils livrés avec Drupal ? Activez les forums, activez les commentaires, paramétrez les livres collaboratifs, activez les sondages, structurez le contenu, hiérarchisez les catégories ou utilisez les tags génériques avec la taxonomy.

Vous voulez votre propre thème d'affichage ? Drupal utilise un système de tokens PHP que vous pouvez placer aux endroits adéquats de votre design, pour remplacer le placeholder Lorem ipsum avec le contenu du site. Le balisage de Drupal est propre, conforme à la norme XHTML. Pas d'utilisation de tableaux. 

Le flux Drupal

Pour une bonne compréhension de Drupal, il faut savoir comment les choses se diffusent dans le système. Drupal est nettement séparé en différentes couches qui permettent d'avoir les choses organisées et souples. Il ya cinq couches principales dans Drupal : 

  1. Au cœur du système se trouve le grand conteneur des nodes, des données. Avant que quoi que ce soit ne puisse être affiché sur le site, il doit être saisi en tant que donnée.
  2. La couche suivante est celle des modules. Les modules sont des plug-in qui peuvent soit faire partie du core de Drupal (ils sont livrés avec) ou être créés par des membres de la communauté Drupal. Les modules fournissent diverses fonctions qui développent les possibilités de votre site pour y inclure des choses comme la création de champs personnalisés pour vos nodes, des calendriers de manifestations, du e-commerce, le tri et l'affichage des données,et bien plus. Il y a des centaines de possibilités dans la collection toujours plus fournie des modules contributifs de Drupal. Elles représentent le travail de chacun, du développeur individuel aux grandes sociétés qui utilisent et font confiance à Drupal et travaillent à accroître sa puissance et son intérêt.
  3. Dans la couche suivante, nous trouvons les blocs et les menus. Les blocs fournissent souvent l'affichage d'un module et peuvent être placés à différents endroits de votre thème. Les blocs peuvent être paramétrés pour afficher de différentes façons, comme pour ne s'afficher que dans certaines pages, ou pour certains utilisateurs.
  4. Ensuite viennent les permissions. C'est ici que l'on paramètre ce à quoi les utilisateurs ont accès. Les permissions sont assignées aux rôles et les utilisateurs sont associés aux rôles qui leur donnent les permissions leur étant associées.
  5. En surface se trouve le gabarit du site. Il est majoritairement constitué de XHTML et de CSS, avec quelques tokens PHP qui insèrent le contenu du système aux endroit appropriés. Viennent également avec chaque gabarit un ensemble de fonctions qui peuvent être utilisées pour surcharger les fonctions standards des modules, afin de contrôler complétement la façon dont les modules génèrent les balises au moment de l'affichage. Les gabarits peuvent aussi être assignés à la volée selon les droits des utilisateurs.

Le sens de ce flux, du core vers la surface, impose la façon dont les choses se font dans Drupal. Certaines fonctionnalités que vous souhaitez ne s'affichent pas ? Peut-être avez-vous chargé le module dans le système mais ne l'avez pas activé, et c'est pourquoi ce qui vient en aval ne fonctionne pas (comme le « A » du schéma ci-dessus).

Peut-être que le module est installé et activé mais vous ne voyez toujours pas ce que vous voulez dans le site. Auriez-vous oublié de placer le bloc, comme dans « B » ? Où les droits utilisateurs ne seraient-ils pas en conflit avec ce que vous voulez et les utilisateurs ne seraient-ils pas paramétrés pour ne pas voir l'affichage comme dans « C » ?

De plus, comme mentionné plus haut, obtenir la finesse de contrôle souhaitée, nonobstant les détails de la sortie XHTMl du module, requiert la compréhension de ce flux. Utilisez-vous un module qui fait exactement ce que vous voulez, en voulant que le balisage soit un peu différent ? Peut-être l'auriez-vous souhaité balisé différemment, ou aimeriez-vous attribuer une classe CSS à quelque chose ? Vous accomplirez cela en copiant la fonction du module qui gère l'affichage et en la plaçant dans votre gabarit. Modifiez le code à cet endroit, et lorsque le système appellera l'affichage il verra votre fonction personnalisée et l'utilisera à la place de celle du module.

A vous de jouer !

Maintenant que vous avez un plan du pays Drupal, prenez le temps d'en installer une copie sur un serveur et de lire le guide d'installation et de configuration qui en indique les étapes pas à pas.

Bienvenue dans la communauté des utilisateurs Drupal, et joyeuses conceptions de sites !