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

Images d'en-tête dynamiques correspondant à la Taxonomie

Traduction de la page http://drupal.org/node/882852
publiée / actualisée sur drupal.org le 14 Août 2010


Pour créer les images d'en-tête de pages, vous utilisez probablement plusieurs blocs contenant des images que vous ne rendez visibles que sur certains chemins (path).

Il y a une autre façon de faire, plus facile, qui consiste à créer un seul bloc avec un filtre php activé et paramétré comme suit. L'avantage est évident, vous n'avez qu'un bloc à créer et il sera plus facile d'ajouter des catégories et des images que si vous aviez plusieurs blocs. Car, que se passerait-il si vous aviez des centaines de catégories, vous ne voudriez pas créer des centaines de blocs, n'est-ce pas ?

Étape 1

Supposons que vous ayez les catégories suivantes dans votre blog (créées avec la taxonomie pour figurer dans vos billets de blog) :

  • Animaux
  • Technologie
  • Famille
  • Drupal

Étape 2

Avec le module Pathauto installé, paramétrez les chemins de votre blog comme ceci : blog/[term-raw]/[title-raw], vos URL devrait ressembler à ceci lorsque vous créez vos billets :

  • /blog/animaux/mon-chaton-mignon
  • /blog/technologie/les-derniers-fournisseurs-cloud
  • blog/famille/vacances-en-Espagne
  • blog/drupal/ces-modules-indispensables

Étape 3

Mettez vos images dans un dossier (par exemple, /sites/default/files/headers/) et nommez-les comme ci-dessous :

  • animaux_header.jpg
  • technologie_header.jpg
  • famille_header.jpg
  • drupal_header.jpg

Étape 4

Placez ce code dans un bloc (qui deviendra le contenu de vote en-tête) avec le filtre php activé :

<?php
// cette ligne fournit le path, comme /blog/animaux/mon-chaton-mignon
$termp $_SERVER['REQUEST_URI']; 

// cette ligne convertit le path en tableau (array)
// comme : array('blog','animaux','mon-chaton-mignon')  
$categ explode('/',$termp);  

// inverser le tableau et le second terme sera toujours 
// la catégorie comme dans array('mon-chaton-mignon','animaux','blog')            
$categrev array_reverse($categ);       

// on peut initialiser une variable avec le deuxième terme
$categ1 $categrev[1];                    

// ajout d'une instruction conditionnelle pour vérifier si l'image existe 
// si elle existe, alors on charge l'image
(file_exists('/sites/default/files/headers/' $categ1 '_header.jpg')) ? print '<img src="/sites/default/files/headers/' $categ1 '_header.jpg" alt="' $categ1 '"/>''';  
?>

Maintenant, si vous avez plusieurs termes dans une hiérarchie et que vous voulez afficher chaque terme avec une image en en-tête, il vous suffit de modifier le tableau des termes et l'instruction conditionnelle.


A la suite de cet article, un lecteur a indiqué en commentaire que le module Taxonomie Image permet d'obtenir le même résultat.

Ce à quoi il a été répondu (par l'auteur ? ) que ce bout de code permettait de résoudre simplement l'ajout d'images relatives aux paths. Et que la compréhension de ce code permettait également de résoudre des problèmes simples relatifs aux paths, comme la mise en forme des menus, des blocs, des pages, selon leurs paths.