/*
###############################################
Album photos express V 1.2.2
Philippe HALICKI
philippe@exconcept.com
www.exconcept.com
Script écrit le 24/09/2004
Modifié le 04/10/2005
Adapté par R.J. le 28/02/2008
Supporte les formats JPG, GIF et PNG.
Cet album photos permet de lister toutes les images de répertoires, de remonter et de descendre à volonté dans l'arborescence jusqu'au point d'arret corrspondant à l'emplacement du script.
Voici la liste des éléments que vous pouvez définir :
- Nombre de lignes et de colonnes par page
- Largeur MAX des vignettes
- Hauteur MAX des vignettes
- Affichage d'un cadre autour des vignettes ou non
- Redimensionnement à la volée ou non
- Epaisseur du cadre du tableau d'affichage des vignettes
- Couleur du cadre du tableau d'affichage des vignettes
Installation : Placez les fichiers index.php et vignettes.php dans le répertoire racine contenant les images. C'est tout !
L'appel se fait par index.php
###############################################
*/
/* ############################# */
/* ### Variables utilisateur ### */
/* ############################# */
/* ### $nbimages = nombre de lignes à afficher ### */
$nblignes='4';
/* ### $nbcols = nombre de colonnes à afficher ### */
$nbcols='5';
/* ### $larimage = largeur MAX des miniatures ### */
$larimage='150';
/* ### $larimage = hauteur MAX des miniatures ### */
$hautimage='110';
/* ### $epaiscadretable = Epaisseur du cadre du tableau d'affichage des vignettes ### */
$epaiscadretable='2';
/* ### $epaiscadretable = Couleur du cadre du tableau d'affichage des vignettes (valeur héxa) ### */
$coulcadretable='FADF72';
$coulcellule='FFFFFF';
/* ### $cadrak = Affichage d'un cadre autour des vignettes ou non, 1 pour oui, 0 pour non ### */
$cadrak='1';
/* ### $redimvoz = Redimension à la volée (nécesite GD2), 1 pour oui, 0 pour non ### */
/* ### Le redimensionnement à la volée nécesite beaucoup de resources serveur mais permet de considérablement accélerer l'affichage des vignettes ### */
$redimvoz='1';
?>
/* ### Fonction d'affichage de l'album ### */
function affichimgs($nblignes,$larimage,$hautimage,$nbcols,$url,$urlancien,$redimvoz,$cadrak,$epaiscadretable,$coulcadretable){
if (isset($_REQUEST['start'])){
$start = $_REQUEST['start'];
}
if(is_null($start)){
$start = 1;
}
if($url!=''){
$urlt=$url.'/';
$dossier = opendir($urlt);
}else{
$dossier = opendir('.');
}
/* tableau des noms et textes associés */
$ressource_fichier = fopen('ref.txt', 'r');
if($ressource_fichier) { //Si ref.txt est lisible on peut continuer
$i=1;
while(!feof($ressource_fichier)) { //Tant que l'on est pas à la fin du fichier
$fligne = fgets($ressource_fichier);
$fnom[$i] = substr($fligne,0,strpos($fligne,";"));
$ftxt[$i] = substr($fligne,strpos($fligne,";")+1);
$i++;
}
fclose($ressource_fichier);
}
$nb=sizeof($fnom)-1;
if(is_null($start)){
$start = 1;
}
if ($start=='') { $start=1; }
if (($start<1) || ($start>$nb)) { $start=1; }
$idx=$start;
$nbvign=0;
$stopboucle='no';
$nbcellpage=$nblignes*$nbcols;
/* ### Affichage de la table ### */
?>
/* ### Début de boucle ### */
while($stopboucle=='no'){
/* ### Extraction de l'extension ###
$imagesource=$urlt.$images[$idx];
$imgsource=$images[$idx]; */
$imagesource=$urlt.$fnom[$idx].'.jpg';
$imgsource=$fnom[$idx].'.jpg';
$txt=$ftxt[$idx];
$extent=substr($imagesource,strrpos($imagesource,"."));
$extensaj=strtoupper($extent);
/* ### Arret de la boucle si plus rien ### */
if($idx <= $nb){
$nbvign++;
$idxcol=($idx%$nbcols);
if ($idxcol==0){$idxcol=$nbcols;}
/* ### Arret de la boucle si nb images = nb défini pour une page ### */
if (($nbvign >= $nbcellpage)) {
$stopboucle='ok';
}
/* ### Extraction des dimensions de l'image ### */
$sizeimgo=getimagesize($imagesource);
$imglargo=$sizeimgo[0];
$imghauto=$sizeimgo[1];
/* ### Recalcul des dimensions MAX des vignettes ### */
if ($imglargo>$larimage){
$imghautoz=$imghauto*$larimage/$imglargo;
$imghautoz=round($imghautoz);
$imglargoz=$larimage;
}
else{
$imglargoz=$imglargo;
$imghautoz=$imghauto;
}
if ($imghautoz>$hautimage){
$imglargoz=$imglargoz*$hautimage/$imghautoz;
$imglargoz=round($imglargoz);
$imghautoz=$hautimage;
}
/* ### Affichage de l'image ### */
$txt=eregi_replace("'",'*',$txt); // remplacement de ' par * dans le commentaire
?>
/* */ ?>
/* ### Redimension à la volée ### */
if ($redimvoz=='1'){
?>
}
else{
?>
}
/* ### Affichage des infos sur l'image ### */
?>
echo $txt;
?>
|
/* ### image suivante-colonne suivante-nouvelle ligne du tableau ### */
$idx++;
if ($idxcol==$nbcols){
?>
}
}
/* si tout affiché, terminer la ligne */
else {
if($idxcol != $nbcols){
for($j=$idxcol;$j < $nbcols; $j++){
?> |
}
}
?>
$stopboucle='ok';
}
}
/* ## fin boucle while ## */
?> |
if($start >= $nbvign){
?>page précédente
} else { echo " "; }
?>
|
retour au menu |
if(($nb > $nbvign) && ($idx < $nb-2)){
?>page suivante
} else { echo " "; }
?> |
}
/* ### Fin de fonction affichimgs ### */
/* ### Récupération des variables ### */
$imglargoz=$HTTP_GET_VARS[imglargo];
$imghautoz=$HTTP_GET_VARS[imghauto];
$sourceimg=$HTTP_GET_VARS[sourceimg];
/* $url=$HTTP_GET_VARS[url];
$urlancien=$HTTP_GET_VARS[urlancien]; */
/* ### Les lignes ci-dessous empèchent de remonter les répertoires ### */
/* ### Merci à symptOme de la team GSH pour la détection de la faille ### */
$urltest=eregi_replace('.','',$url);
$urltest=eregi_replace('/','',$url);
if(ctype_alpha($urltest)){
$carac='ok';
}
if($urltest=='' || $carac!='ok'){
$url='';
}
$urlancientest=eregi_replace('.','',$urlancien);
$urlancientest=eregi_replace('/','',$urlancien);
if(ctype_alpha($urlancientest)){
$carac='ok';
}
if($urlancientest=='' || $carac!='ok'){
$urlancien='';
}
/* ### Si on clique sur une image alors affichage en taille réelle ### */
if($sourceimg!=''){
?>
}
else{
?>
/* ### Appel de la fonction pour l'affichage des images ### */
affichimgs($nblignes,$larimage,$hautimage,$nbcols,$url,$urlancien,$redimvoz,$cadrak,$epaiscadretable,$coulcadretable);
?> |
}
?>