Source de affiche_galerie.php
<?php
// Affiche galerie.php par FE. Janvier 2006
// script PHP v4.0
//
// Crée un tableau avec le contenu du dossier
// indiqué dans les constantes
//
// affiche soit un tableau si pas de variables $_GET
// ou une image unique si $_GET["numimg"] = n
//
// TODO : inclure le fichier dans la page où on veut la galerie
//
// constantes
define("NB_COLS" , 3);
define("URL_IMG", "./dessins/");
define("URL_MINIS", "./dessins/miniatures/");
define("URL_SELF", "./galerie.php");
// chargement du fichier d'informations
$dessins_infos = array ();
$file = fopen(URL_IMG . 'comments-fr.txt', 'r');
while(! feof($file))
{
$strbuf = trim(fgets($file, 4096));
array_push($dessins_infos, explode(";" , $strbuf));
}
fclose($file);
// ALGORITHME
//
// - soit on affiche un tableau avec les vignettes ($numimg == -1)
// - soit on affiche une image aggrandie
$numimg = isset($HTTP_GET_VARS["numimg"]) ? $HTTP_GET_VARS["numimg"] : -1;
// mieux : utiliser $_GET au lieu de $HTTP_GET_VARS
if($numimg == -1) {
// pas de numéro d'image : afficher un tableau avec les vignettes
// sur trois colonnes
echo '<table class="table_galerie">';
$i = 0;
while($i < count($dessins_infos))
{
// préparation des attributs pour <a> et <img>
// bien sûr on peut utiliser DOMDocument->createAttribute()
// si l'environnement est PHP > 5.0
$href = 'href="' . URL_SELF . '?numimg='. $i . '"';
$src = 'src="' . URL_MINIS . $dessins_infos[$i][0] . '"';
$alt= 'alt="'. $dessins_infos[$i][1]. '"';
// formatage du tableau - modulo NB_COLS pour les line-breaks
if($i % NB_COLS == 0)
echo "<tr>";
echo " <td>";
echo " <a $href>";
echo " <img $src $alt>";
echo " </a>";
echo " </td>";
if($i % NB_COLS == (NB_COLS - 1))
echo "</tr>";
// etc ...
$i++;
}
echo"</table>";
} else {
// sinon, il y a un numéro d'image : aficher l'image en grand
// avec deux liens "précédent" et "suivant"
$c = count($dessins_infos);
// calcul de l'indice des images précédente et suivantes
$p = ($numimg > 0) ? $numimg-1 : $c-1;
$s = ($numimg < ($c-1)) ? $numimg+1 : 0;
// préparation des attributs src, alt et href
// bien sûr on peut utiliser DOMDocument->createAttribute()
// si l'environnement est PHP > 5.0
$href_precedente = 'href="' . URL_SELF . '?numimg=' . $p . '"';
$href_suivante = 'href="' . URL_SELF. '?numimg=' . $s . '"';
$src_courante = 'src="' . URL_IMG . $dessins_infos[$numimg][0] . '"';
$alt_courante = 'alt="' . $dessins_infos[$numimg][1] .'"';
$class_courante = 'class="grande_image"';
$href_vignettes = 'href="' . URL_SELF . '"';
// formatage des liens précédent, suivant et retour vignettes
echo ' <div class="liens_vignettes">';
// -- lien image precedente
echo ' <div>';
echo " <a $href_precedente>Image précédente</a>";
echo ' </div>';
// -- commentaire sur l'image courante et retour au sommaire
echo ' <div>';
echo " <p><a $href_vignettes>Retour aux vignettes</a></p>";
echo ' <p>' . $dessins_infos[$numimg][1] . '</p>'; // description
echo ' </div>';
// -- lien image suivante
echo ' <div>';
echo " <a $href_suivante>Image suivante</a>";
echo ' </div>';
// ...
echo ' </div>';
// grande image
echo "<img $class_courante $src_courante $alt_courante>";
} // else numimg
// - THE END -
?>