par
sadeq » 08 juin 2005, 17:19
une galerie photo en PHp, pourvu ça vous guidera.
<?
//Ce programme parcourt un répértoire donné
//et affiche les images qui s'y trouvent dans une table HTML
//dont la mise en forme est paramètrable
//
//Attention: ce programme ne fait pas de filtrage de fichiers (il ne distingue pas une image d'un autre objet)
// Mais il n'affiche que des images
//
//Fonction explorateur de répertoire
function liste($path)
{
$tableau = array();
if ($dir = @opendir($path))
{
while($file = readdir($dir))
{
if ($file !="." && $file != "..")
{
if (is_file($path."/".$file))
{
array_push($tableau, $path."/".$file);
}
}
}
}
return $tableau;
}
//Remplir le tableau source de fichiers à partir de $path
$path='./images';
$source = liste($path);
//Paramètres de l'interface
$action = isset($_GET["action"])?$_GET["action"]:""; //boutons suivant/précédent
$nbLignes = isset($_GET["nbLignes"])?$_GET["nbLignes"]:2; //régle le nbre de lignes par page
$nbCol = isset($_GET["nbCol"])?$_GET["nbCol"]:2; //régle le nbre de colonnes par page
$images_page = $nbLignes * $nbCol; //calcule le nbr d'images par page
$pos = isset($_GET["pos"])?$_GET["pos"]:0; //la position actuelle dans le tableau source de fichiers
//Traiter le lot d'images suivant/précédent à afficher
if ($action == "Suivant" && $pos + $images_page < count($source)) $pos += $images_page;
if ($action == "Précédent" && $pos - $images_page >= 0) $pos -= $images_page;
//Affichage de la source en respectant les paramètres d'affichage (nbre colonnes/nbre lignes)
$i=0;
echo '<h1>Galerie de photos</h1><hr><table width=100%>';
for($p = $pos; $p < $pos + $images_page; $p++) {
//Saut à la ligne si $i est multiple de $nbCol
if ( $i % $nbCol == 0) echo '<tr bgcolor="#feffb7">'; //retour à la ligne
if ($p >=0 && $p < count($source)) //afficher une image si elle existe
echo '<th ><img src="'.$source[$p].'" width=50 heigth=50 align=bottom><br>'
.substr(basename($source[$p]),0,strpos(basename($source[$p]),".")); //nom du fichier sans chemin ni extension
$i++; //compteur d'images affichées
}
echo '</table><hr>';
//Formulaire de contrôle/paramètrage de l'afficheur'
echo "<form name=f method=get><table border=0 width=100%><tr><td>";
//Les boutons suivant/précédent ne s'affichent que si nécéssaire
//s'il y un précédent :
if($pos - $images_page >= 0) echo '<input type="submit" name=action value="Précédent">';
//s'il y a un suivant:
if($pos + $images_page < count($source)) echo '<input type="submit" name=action value="Suivant">';
//paramètres nbr Lignes et colonnes par page (Auto validable)
echo '<td>Colonnes <input value="'.$nbCol.'" name="nbCol" onChange="f.submit();">';
echo '<td>Lignes <input value="'.$nbLignes.'" name="nbLignes" onChange="f.submit();">';
//Un champs caché pour la position en cours dans la source de fichiers
echo '<input type=hidden value="'.$pos.'" name="pos">';
echo "</table></form>";
?>
une galerie photo en PHp, pourvu ça vous guidera.
[php]
<?
//Ce programme parcourt un répértoire donné
//et affiche les images qui s'y trouvent dans une table HTML
//dont la mise en forme est paramètrable
//
//Attention: ce programme ne fait pas de filtrage de fichiers (il ne distingue pas une image d'un autre objet)
// Mais il n'affiche que des images
//
//Fonction explorateur de répertoire
function liste($path)
{
$tableau = array();
if ($dir = @opendir($path))
{
while($file = readdir($dir))
{
if ($file !="." && $file != "..")
{
if (is_file($path."/".$file))
{
array_push($tableau, $path."/".$file);
}
}
}
}
return $tableau;
}
//Remplir le tableau source de fichiers à partir de $path
$path='./images';
$source = liste($path);
//Paramètres de l'interface
$action = isset($_GET["action"])?$_GET["action"]:""; //boutons suivant/précédent
$nbLignes = isset($_GET["nbLignes"])?$_GET["nbLignes"]:2; //régle le nbre de lignes par page
$nbCol = isset($_GET["nbCol"])?$_GET["nbCol"]:2; //régle le nbre de colonnes par page
$images_page = $nbLignes * $nbCol; //calcule le nbr d'images par page
$pos = isset($_GET["pos"])?$_GET["pos"]:0; //la position actuelle dans le tableau source de fichiers
//Traiter le lot d'images suivant/précédent à afficher
if ($action == "Suivant" && $pos + $images_page < count($source)) $pos += $images_page;
if ($action == "Précédent" && $pos - $images_page >= 0) $pos -= $images_page;
//Affichage de la source en respectant les paramètres d'affichage (nbre colonnes/nbre lignes)
$i=0;
echo '<h1>Galerie de photos</h1><hr><table width=100%>';
for($p = $pos; $p < $pos + $images_page; $p++) {
//Saut à la ligne si $i est multiple de $nbCol
if ( $i % $nbCol == 0) echo '<tr bgcolor="#feffb7">'; //retour à la ligne
if ($p >=0 && $p < count($source)) //afficher une image si elle existe
echo '<th ><img src="'.$source[$p].'" width=50 heigth=50 align=bottom><br>'
.substr(basename($source[$p]),0,strpos(basename($source[$p]),".")); //nom du fichier sans chemin ni extension
$i++; //compteur d'images affichées
}
echo '</table><hr>';
//Formulaire de contrôle/paramètrage de l'afficheur'
echo "<form name=f method=get><table border=0 width=100%><tr><td>";
//Les boutons suivant/précédent ne s'affichent que si nécéssaire
//s'il y un précédent :
if($pos - $images_page >= 0) echo '<input type="submit" name=action value="Précédent">';
//s'il y a un suivant:
if($pos + $images_page < count($source)) echo '<input type="submit" name=action value="Suivant">';
//paramètres nbr Lignes et colonnes par page (Auto validable)
echo '<td>Colonnes <input value="'.$nbCol.'" name="nbCol" onChange="f.submit();">';
echo '<td>Lignes <input value="'.$nbLignes.'" name="nbLignes" onChange="f.submit();">';
//Un champs caché pour la position en cours dans la source de fichiers
echo '<input type=hidden value="'.$pos.'" name="pos">';
echo "</table></form>";
?>
[/php]