Page 1 sur 1

galerie de photos a partir de dossiers

Posté : 17 mai 2006, 14:16
par sasg
Bonjour,

je suis en train d'essayer de faire une galerie de photos, mais ce que j'aimerais c'est qu'a partir d'une liste de dossier creer le menu et dans chaque dossier se trouve mes images taille reel et un sous dossier où se trouve les vignettes

donc voila le code pour recupérer la liste des dossiers
<?php 

$rep = "./appart";
$dir = opendir($rep);

while ($dossier = readdir($dir))
{
  if ($dossier !="." && $dossier != "..")
  {
    if(is_dir($rep."/".$dossier)) 
    {
     echo "$dossier";
     echo " <br>";
    }
  }
}
closedir($dir); ?>
et voila le code pour afficher la galerie
<?php
//Creation de la galerie
function galerie($rep,$vig,$ext,$ipl,$wid,$bor)
{

if(!$rep)
{ 
  $rep='.'; 
}
echo $rep;
if(!$vig)
{ 
  $vig='.'; 
}
if(!$wid)
{ 
  $wid='100%';
}
 
echo '<center>';
echo '<table bgcolor="#000000" border='.$bor.'><tr>';
 
$compt=0;
$dp = opendir($vig);
while($photo = readdir($dp))
{
    if(is_file("$vig/$photo") && (strtolower(extension($photo)) == $ext))
	{
        if($compt%$ipl == 0){ echo '</tr><tr>'; }
        echo "<td>\n";
        echo '<a href="javascript:openimg(\''.$rep.'/'.$photo.'\')">';
        echo '<img border=0 width='.$wid.' src="'.$vig.'/'.$photo.'"></a><br></td>';
        $compt++;
    }
}
echo '</tr></table>';
echo '</center>';
}
 
//Donne l'extension d'un fichier
function extension($fichier)
{
    ereg("\.([^\.]*$)", $fichier, $exte);
    return $exte[1];
}
 
?>
<?php
galerie('appart/cuisine','appart/cuisine/vig','jpg',4,'',0);
?>
donc j'aimerais savoir comment faire pour "melanger" les 2 scripts pour que quand je cliques sur un lien cree par le "listage" des dossiers me renvoit la galerie corespondante a ce dossier.

J'espere m'avoir fait comprendre :D

Merci

Posté : 17 mai 2006, 14:54
par jpaul
Hum en effet pas facile à comprendre...

Quand tu parles de :
je cliques sur un lien cree par le "listage"
tu fais allusion au
code pour recupérer la liste des dossiers
?
Sauf erreur, il n'affiche pas de lien ?

Mais pourquoi au lieu de faire :
echo "$dossier"; 
tu ne fais pas appel à la fonction de création de gallerie ?
Il te suffirait juste de tester si la vignette n'existe pas et qu'elle n'est pas plus ancienne que la photo dans ta fonction galerie pour ne pas faire de conversions inutiles non ?

Posté : 17 mai 2006, 14:56
par Ryle
En passant le nom du dossier sur lequel on a cliqué en tant que premier argument de ta fonction galerie() ?

liste des dossiers :
...
  // le lien doit contenir le chemin complet s'il s'agit d'un sous dossier
  echo '<a href="maGalerie.php?dir='.$dossier.'">'.$dossier.'</a>'; 
  echo " <br>"; 
...
affichage de la galerie "maGalerie.php"
function galerie(...) {
  ...
}

galerie($_GET['dossier'], $_GET['dossier'].'/vig','jpg',4,'',0);

Posté : 17 mai 2006, 15:01
par jojolapine
bon alors je sais pas si ça peut marcher, mais qqch dans ce gout là:
<?php 
fuction listage($rep){
  $dir = opendir($rep); 

  while ($dossier = readdir($dir)) 
  { 
    if ($dossier !="." && $dossier != "..") 
    { 
      if(is_dir($rep."/".$dossier)) 
      {
       echo "<a href=\"galerie.php?rep=".$dossier."&vig=&ext=&ipl=&wid=&bor=\">".$fichier."</a>";
//les champs vig ext ipl wid et bord sont à remplir avec des valeurs
//fixes ou que tu pourras transmettre à la fonction listage
       echo " <br>"; 
      }   
    } 
  } 
  closedir($dir);
}
listage("./appart");
fichier galerie.php
//code html statique
<?php
galerie($_GET['rep'],$_GET['ext'],$_GET['ipl'],$_GET['wid'],$_GET['bord']);
?>
//suite du code html static
bon ben j'ai été devancé :(

Posté : 17 mai 2006, 15:02
par Jean-François
Je me trompe peut etre mais ce serait pas plutot:
function galerie(...) { 
  ... 
} 

galerie($_GET['dir'], $_GET['dir'].'/vig','jpg',4,'',0);
???

Posté : 17 mai 2006, 15:23
par Ryle
Je me trompe peut etre mais ce serait pas plutot:
function galerie(...) { 
  ... 
} 
galerie($_GET['dir'], $_GET['dir'].'/vig','jpg',4,'',0);
???
Tu te trompes pas, et c'est effectivement "dir" et po "dossier" que j'ai mis dans le lien... je crois que le truc de jojolapine est contagieux :)

Posté : 17 mai 2006, 15:42
par sasg
merci j'ai reussi grace a vous! j'ai pris la solution de ryle avec la correction apportée

c'etait tout bete :wink:

j'y etais presque :D

j'espere avoir des questions plus compliquees la prochaine fois :)