Gallerie depuis un dossier avec pagination de type google

Description

Bon salut tout le monde^^
une petite gallerie depuis un dossier de votre choix avec la pagination de type google qui va bien avec^^

Bon je balance ca un peu comme un pavé dans la marre, en m'apprétant a éssuyer les éclaboussures.
Mais bon je fait ce que je peut avec mes variables :P.
mais ne soyez pas indulgent.
De toutes façons les compliments ca ne fait pas avancer le shmilblick^^.
Enfin voila, j'éspére surtout que ca aideras des gens qui voudrait avoir une galerie avec une pagination sans passer par la table SQL.

Source / Exemple :


<?php
//////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////A EDITER////////////////////////////////////////////
$dossier = 'gallerie';//le nom de votre dossier ou se trouve vos photos                     //
//////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////

function secure($requette){
$date = strftime('%Y-%m-%d %H:%M:%S');
$date2= strftime('%Y-%m-%d');
$ip = $_SERVER['REMOTE_ADDR']; 
$chemin1 = $_SERVER['PHP_SELF'];
touch('info-'.$date2.'.log');

/////////////////////////////////A EDITER SI NECESSAIRE//////////////////////////////////////
$fp=fopen('admin/log/info/info-'.$date2.'.log','a');//chemin par defaut: admin/log/info/   //                                 
/////////////////////////////////////////////////////////////////////////////////////////////

fwrite($fp,"[Date:$date]<->[IP:$ip]<->[Origine:$chemin1]<->[Requette:$requette]\n\r");
echo '<script language=\'Javascript\'>
alert ("Votre requette n\'est pas authorisé! Pour des raisons de sécurités votre IP et votre requette ont été enregistrés et seront analysés.") 
window.location.replace("'.$_SERVER['PHP_SELF'].'");
</script>';
exit();
}

if(isset($_COOKIE['affichage'])){
$cookie = $_COOKIE['affichage'];
$val=split('[;.-]',$cookie);

if(is_numeric($val[0]) && strlen($val[0]) < 5){
$max_images = addslashes($val[0]);
}
else{
$requette = $val[0];
secure($requette);
}
if(is_numeric($val[1]) && strlen($val[1]) < 5){
$miniatures = addslashes($val[1]);
}
else{
$requette = $val[1];
secure($requette);
}
}
else{
$max_images = 10;
$miniatures = 150;
}
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css" media="all">
<meta http-equiv="Content-Type" content="text/html/css; charset=ISO-8859-1"><title>Ma_gallerie</title>
<meta name="Asherah Gallerie v1.0.2" content="crée par benjamin Peneaux pour Phpcs.com">
</head>
<body>
<table width="800"><tr><td width="800"><img src="images/logo.png" alt="logo"></td></tr>
<tr><td class="tableau" width="800" valign="middle">
<form method="get" action="">
<p>
Nombe d'images: <select name="nombre" size="1" id="select1">
<option>2</option>
<option>4</option>
<option>6</option>
<option selected>10</option>
<option>20</option>
<option>30</option>
<option>40</option>
<option>50</option>
<option>60</option>
<option>70</option>
<option>80</option>
<option>90</option>
<option>100</option>
<option>150</option>
</select>
Taille des miniatures: <select name="taille" size="1" id="select2">
<option>30</option>
<option>50</option>
<option selected>100</option>
<option>150</option>
<option>200</option>
<option>250</option>
<option>300</option>
<option>400</option>
</select>
<input type="submit" value="Valider">
</p>
</form>

<?php
if(isset($_GET['nombre'])){
if(is_numeric($_GET['nombre']) && strlen($_GET['nombre']) < 5){
$max_images = addslashes($_GET['nombre']);
}
else{
$requette = $_GET['nombre'];
secure($requette);
}
}
if(isset($_GET['taille'])){
if(is_numeric($_GET['taille']) && strlen($_GET['taille']) < 5){
$miniatures = addslashes($_GET['taille']);
}
else{
$requette = $_GET['taille'];
secure($requette);
}
}

if(!isset($_GET['images'])){
$affichage = 0;
$index = $affichage/$max_images+1;
}
else{
$affichage = addslashes($_GET['images']);
if(is_numeric($affichage) && strlen($_GET['images']) < 5){
$index = $affichage/$max_images+1;
}
else{
$requette = $_GET['images'];
secure($requette);
}
}
if(!isset($_GET['pages'])){
}
else{
$page = addslashes($_GET['pages']);
if(is_numeric($page) && strlen($_GET['pages']) < 5){
$affichage = $page*$max_images;
$index = $page+1;
}
else{
$requette = $_GET['pages'];
secure($requette);
}
}

echo '
<form method ="post" action="sauvegarde.php">
<input type="hidden" name="nombre" value="'.$max_images.'">
<input type="hidden" name="taille" value="'.$miniatures.'">
<input type="submit" value="Sauvegarder">
</form>
</td></tr><tr><td width="800" align="left">';

$tableau = array(); 
if(is_dir($dossier)) {
$dir = opendir($dossier) or die('Impossible d\'ouvrir le dossier');

while (false !== ($file = readdir($dir))) {
if ($file != '.' && $file != '..') {
$tableau[] = $file;
}
}
}
$total = count($tableau);
if($total == 0 ){

     echo'Le Dossier '.$dossier.' est vide ou n\'éxiste pas.';
     exit();

}
closedir($dir);

if($total < $max_images){
$unique = 1;
}

$max = $max_images;
$suivant = $affichage+$max;
$precedent = $affichage-$max;
for ($i=$affichage; $i<$suivant; $i++){
if($i < $total){
echo '<a href="'.$dossier.'/'.$tableau[$i].'"><img class="image" src="'.$dossier.'/'.$tableau[$i].'" height="'.$miniatures.'" alt="'.$tableau[$i].'"></a>';
}
else{
$fin = 'fin';
break;
}
}
if(!isset($fin)){
$url = $_SERVER['PHP_SELF'].'?images=';
$pointeur = $suivant;
$suivant='<a class="lien1" href="'.$url.$pointeur.'&amp;nombre='.$max.'&amp;taille='.$miniatures.'"><img class="image" src="images/suivant.PNG" alt="suivant"></a>';
}
else{
$suivant='';
$suite = $suivant;
}
if($precedent >= 0){
$url2 = $_SERVER['PHP_SELF'].'?images=';
$pointeur2 = $precedent;
$precedent = '<a class="lien1" href="'.$url2.$pointeur2.'&amp;nombre='.$max.'&amp;taille='.$miniatures.'"><img class="image" src="images/precedent.PNG" alt="precedent"></a>';
}
else{
$precedent = '';
}
if(!isset($unique)){
$retour = $precedent;
$suite = $suivant;                                          
echo '<tr><td class="tableau" align="center" valign="middle"><p>'.$retour;
}
 
$pages = ceil($total/$max);
$index2 = $index-4;
if($index2 < 0){
$index2 = 0;
}
$index3 = $index+4;
if($index3 > $pages){
$index3 = $pages;
}

for ($j=$index2; $j<$index3; $j++){

$url3 = $_SERVER['PHP_SELF'].'?pages=';
$pointeur3 = $j;
$numero = $j+1;
$numero1 = ereg_replace(''.$index.'','<b><font size="5">'.$index.'</font></b>',$numero);
$pagination = '<a href="'.$url3.$pointeur3.'&amp;nombre='.$max.'&amp;taille='.$miniatures.'">'.$numero1.'|</a>';
if(!isset($unique)){
///////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////mise en page pagination//////////////////////////////////
echo $pagination;                                                                    //
///////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
}
}
echo $suite;
?>
</p></td></tr>
<tr><td align="center" valign="middle">
<p>
<a href="http://jigsaw.w3.org/css-validator/"><img class="image" src="http://jigsaw.w3.org/css-validator/images/woolly-icon" alt="CSS"></a>
<a href="http://validator.w3.org/check?uri=referer"><img class="image" src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01 Transitional" height="31" width="88"></a>
</p>
</td></tr>
</table>
</body>
</html>

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.