Thomas Hesse
"Nous souhaiterions savoir si il est possible d'afficher le nombre de photos disponibles sur la fiche détaillée de chaque bien."

Bonjour,

A l'heure actuelle, il n'existe pas de méthode pour récupérer ce nombre dans les templates. Vous pouvez cependant utiliser JavaScript pour faire la même chose.

Dans une fiche détaillée, les visuels sont contenus dans le DIV qui porte l'ID "visuels_additionnels". Il vous suffit de compter le nombre de IMG à l'intérieur de "visuels_additionnels" pour connaitre le nombre total de visuels. Ensuite, vous n'avez plus qu'à mettre ce nombre à l'endroit où vous voulez l'afficher. Voici par exemple un script qui fait tout ça :

 
// récupérer le DIV "visuels_additionnels"
var visu_addi = document.getElementById("visuels_additionnels");
 
// on vérifie que ce DIV a bien été trouvé :
if(visu_addi)
{ // dans ce cas, on récupère un tableau contenant les éléments de type IMG qui sont à l'intérieur de visu_addi
  var tab_divs = visu_addi.getElementsByTagName("img");
 
  // puis on récupère le nombre d'éléments dans le tableau, qui correspond au nombre de visuel
  var nombre_visu = tab_divs.length;
}
 
// On vérifie que le nombre d'éléments est bien initialisé
if(nombre_visu)
{ // puis on concatène ce nombre avec le texte où on veut le mettre.
  // Dans notre exemple, on va l'ajouter au texte d'un lien, qu'on commence par récupérer :
  var lien = document.getElementById("mon_lien");
  
  // puis vient la concaténation (on peut, comme j'ai fait ici, ajouter des parenthèses autour)
  if(lien)
  {
    lien.innerHTML = lien.innerHTML + " (" + nombre_visu + ")";
  }
 
}
 
 


La seule partie qui peut se révéler un peu délicate est de récupérer l'élément dans lequel vous voulez afficher le nombre de visuel. Le plus simple, quand c'est possible, c'est de lui mettre un ID et de faire comme ci-dessus.

Notes :
1/ il faut impérativement inclure ce code APRES le DIV "visuels_additionnels" (pour tester, je l'ai mis juste après la balise fermante de ce DIV, mais n'importe où après fait aussi bien l'affaire).
2/ vous aurez remarqué que je fais un test à chaque fois que je récupère un élément par getElementById. Cela permet d'éviter un plantage de JavaScript en cas d'absence de l'élément en question. Si on ne fait pas ces vérifications, il se peut que les scripts placés plus loin dans le XHTML ne se lancent pas, ce qui peut se révéler particulièrement génant !
--
Thomas - Chargé de support et d'assistance