galerie de photos a partir de dossiers

Eléphant du PHP | 108 Messages

17 mai 2006, 14:16

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

Eléphant du PHP | 451 Messages

17 mai 2006, 14:54

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 ?
Modifié en dernier par jpaul le 17 mai 2006, 15:02, modifié 1 fois.
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

17 mai 2006, 14:56

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);

ViPHP
ViPHP | 3607 Messages

17 mai 2006, 15:01

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é :(

Jean-François
Invité n'ayant pas de compte PHPfrance

17 mai 2006, 15:02

Je me trompe peut etre mais ce serait pas plutot:
function galerie(...) { 
  ... 
} 

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

17 mai 2006, 15:23

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 :)

Eléphant du PHP | 108 Messages

17 mai 2006, 15:42

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 :)