Vous avez sans doute déjà été confronté, dans votre découverte de Drupal, à une question aussi bête que « comment puis-je mettre des images dans mon site ». Cette question en recouvre plusieurs : comment insérer une image dans un texte, comment organiser les images chargées, comment réaliser un album … ? Toutes questions qui, dans Drupal, n’ont aucune réponse simple, au risque d’impatienter les débutants.
Pourquoi est-ce si compliqué ?
Parce que Drupal n’est pas un CMS spécialisé. Il n’est pas plus orienté édition de contenu que gestion de documents, il peut faire des blogs, des intranets ou des portfolios d’artistes. De ce fait, le problème des images peut se poser de façon très différente selon les situations. Tout dépend de leur statut par rapport au contenu du site : elles peuvent être elles-mêmes des contenus ou elles peuvent seulement accompagner le contenu. Il convient de bien identifier la situation dans laquelle vous vous trouvez, car la solution ne sera pas la même. Et de comprendre que votre situation n’est pas universelle.
Les images comme fichiers
Si les images ne sont que des illustrations, les cas possibles sont là encore multiples. Si vous souhaitez les distinguer du reste, et exercer un minimum de contrôle sur leur saisie (obliger les utilisateurs à fournir au moins une image : vous gérez des petites annonces, vous voulez une photo du bien) ou leur sortie (la photo du bien doit apparaître à gauche de la description), vous devrez en faire un champ ImageField. (Ce module est intégré à Drupal 7).
Si vous n’avez pas besoin de contrôler les images, et si vous voulez laisser vos utilisateurs libres de les placer dans leur texte (ils ne vous en seront pas forcément reconnaissants, ils pourront trouver cela compliqué), utilisez une solution WYSIWYG – IMCE est la plus courante, car il fournit un véritable gestionnaire de fichiers ; mais tous les retours d’expérience (je n'en ai pas moi-même, sur ce point) que j’ai pu en lire s’accordent sur un point : les utilisateurs se sentent perdus dans son interface. Il faut garder à l’esprit que l’utilisateur ne cherche pas à faire de la gestion de fichiers ; basiquement, il veut mettre son image dans son texte, point. Donc IMCE n’est pas toujours la meilleure solution. Le module Media, qui reproduit en gros la bibliothèque de médias de Wordpress, paraît plus simple (il est actuellement en développement, mais s’annonce vraiment intéressant ; il existe en outre un profil d'installation Media Developpement). Sinon vous pouvez jeter un coup d'oeil sur les modules TinyBrowser ou ImageBrowser et faire un retour sur Drupalistic. Vu rapidement, visiblement très récent : WYSIWYG Image Upload.
Une autre solution simple (donc limitée) consiste à insérer l'image via un tag de type square brackets ([...]) : c'est ce que fait le module Inline par exemple. Ce système reproduit en quelque sorte la solution SPIP (je charge l'image à côté du texte et je l'insère dans le texte via une petite chaîne de caractères).
Dans tous les cas, il faudra retenir la solution à la fois la plus simple pour les utilisateurs finaux et la moins lourde en termes de maintenance (surtout si ce n'est pas vous qui l'assurerez à long terme !).
Les images comme contenus
Toutefois Drupal fournit une autre possibilité, dont le débutant ne voit pas l’intérêt en général, mais qui se révèle particulièrement puissante en réalité. Elle consiste à traiter les images comme n’importe quel contenu : en nœuds. C'est extrêmement pertinent si vous vous souhaitez utiliser facilement les images et disposer d'une vraie souplesse pour créer des albums.
Le module Image dans la version Drupal 6.x crée un type de contenu Image tout prêt. Ce n'est pas le cas du module Image inclus dans le core de Drupal 7 mais concrètement, vous ferez un type de contenu avec un champ de type image à valeur unique et obligatoire.
Quel est l’intérêt d’en faire un type de contenu spécifique ? Il est double : la taxonomie d’une part, les champs de l’autre. Organisez vos images par tags, sans la contrainte de ne pouvoir les placer que dans un seul répertoire. Une fois que vous y aurez goûté, vous ne pourrez plus vous en passer. D’autant qu’on peut faire bien plus que du classement avec la taxonomie : du contrôle d’accès par exemple. Taxonomy is fun. Ici Drupal a 20 métros d'avance.
Autre avantage : la possibilité de structurer les métadonnées de l’image dans des champs distincts. L’intérêt est double. D'abord, je contrôle l’affichage avec ma feuille de style (et éventuellement un node-image.tpl.php) : le titre en dessous, les crédits en plus petit à droite, etc. Ensuite je peux exposer mes données à l’extérieur de mon site (interopérabilité is fun). N'oublions pas que dans Drupal 7 le RDF est nativement pris en charge : faire des images un type de contenu spécifique me permettra d'en fournir une description XML.
D'autant que traiter les images en ressources n'interdit pas de les utiliser en illustrations. Plusieurs modules permettent d'intégrer des images dans un contenu, soit directement depuis l'éditeur (Image Assist, Image Filter), soit à l'extérieur du corps de texte (Image Attach, compris dans Image). Notez que Image et Image Assist font partie de la distribution Acquia.
C'est tout pour aujourd'hui. Les plus sérieux iront travailler leur anglais :
- sur ce fil de discussion : Image management - the never ending problem!
- sur ce groupe de travail dédié à la question
- sur cet autre groupe de travail dédié au module Media
Dans une prochaine leçon nous survolerons les approches possibles pour créer des albums, qu'on appelle aussi galeries par anglicisme. Sortez en rangs.
Bonjour Marie-Hélène, Je me
Bonjour Marie-Hélène,
Je me permets de mentionner l'excellent module ImageFUpload que j'utilise pour créer des albums photos - il autorise le multiupload et est configurable de 2 manières : soit chaque image uploadée est un node à part entière, soit le node est un album qui gère x images en son sein.
Ce module nécessite swfupload http://code.google.com/p/swfupload/
Et merci pour cet article :-)
mais aussi… Embeded
Il y a un module "embeded Field" qui permet d'insérer des média de plateformes d'hébergement aussi (Picasa, etc.)…
Bonjour à vous deux, Il y a
Bonjour à vous deux,
Il y a certainement plein d'autres solutions mais ce qui me paraissait important, c'était de bien faire comprendre la différence entre les deux approches (images-comme-fichiers et images-comme-noeuds) - sachant bien sûr qu'un noeud "image" c'est toujours une référence à un fichier. D'une certaine façon, l'approche "images-comme-noeuds" est plus directement drupalienne tandis que l'autre est plutôt héritée des autres CMS. La première est donc plus déphasante pour le nouveau venu qui aura tendance à chercher des modules reproduisant ce qu'il connaît déjà, alors qu'à l'expérience on s'aperçoit qu'il est beaucoup plus facile de travailler avec des noeuds.
Je n'ai même pas envisagé la question des images embedded car je ne pensais qu'aux images gérées directement dans un site Drupal (par Drupal, donc).
Bonjour à tous, Cet article
Bonjour à tous,
Cet article tombe à point nommé...
Je cherche désespérément depuis quelques temps la meilleur manière pour réaliser un site d'albums photo à destination familiale.
Je suis en train d'essayer de le réaliser à partir du module imagefield en complément de cck mais je me demande si je ne ferais pas mieux d'utiliser le module image... D'une part pour la souplesse et d'autre part pour la facilité à thémer chacune des vignettes.
Après il est toujours possible de créer un type de contenu Album puis un type de contenu photo ne contenant qu'un champs imagefield. quel est alors l'avantage du module image par rapport à ça.
De plus avec le module image comment réaliser par un moyen simple une gestion du contenu par album. (si par exemple je souhaite supprimer un photo ou bien en ajouter une, ou encore gérer l'ordre de présentation... etc)
C'est autant de questions qui me font tergiverser...
Cordialement,
Thib
Ravie d'avoir pu t'aider un
Ravie d'avoir pu t'aider un peu ; j'ai toujours en tête le projet de faire un deuxième article spécifiquement sur la question des albums, qui elle-même a plusieurs réponses (dont je ne connais pas la totalité !) et mérite plus que quelques commentaires. J'essaie de me presser un peu et de trouver le temps de faire une petite synthèse dans la semaine !
Poster un nouveau commentaire