Gallerie depuis un dossier avec pagination de type google

Soyez le premier à donner votre avis sur cette source.

Vue 10 422 fois - Téléchargée 834 fois

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

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
samedi 14 novembre 2009
Statut
Membre
Dernière intervention
14 novembre 2009

Salut, noobmaster pourquoi ta pas rajouté une variable avec les fichier/dossier qu'on ne souhaite pas afficher ? parceque là il affiche meme les .htaccess quelque dossier comme pare exemple shoutbox/ etc... si tu rajouté cette option tu m'rendrai un imense service :) merci a toi
Messages postés
12
Date d'inscription
vendredi 17 août 2007
Statut
Membre
Dernière intervention
27 août 2007

et voili voilou^^ comme promis je suis rentré de vacances, apres ces quelques jours de bonheur à St cloud a Rock en Seine, la tete dans dans le brouillard et les oreilles sifflantes, je me suis penché tant bien que mal sur ce malheureux code, et comme promis le tout a été updaté, j'ai réalisé une batterie de test et je n'ai pas trouvé d'autres dysfonctionnements, je considére donc cette update comme un update stable et probablement final, si vous trouvé un bug quelquonques tenez moi au courant^^. sur ce je vous dit a bientot^^
Messages postés
62
Date d'inscription
dimanche 14 novembre 2004
Statut
Membre
Dernière intervention
21 avril 2010

Vivement la fin des vacanes
Messages postés
12
Date d'inscription
vendredi 17 août 2007
Statut
Membre
Dernière intervention
27 août 2007

encore une anomalie repéré *mais sans consequences //uniquement de type graphique//* dans l'affichage du lien suivant,
Bon cette fois-ci correction dans une semaine :/
Messages postés
12
Date d'inscription
vendredi 17 août 2007
Statut
Membre
Dernière intervention
27 août 2007

*RESOLU* -update stable- (je ne pouvais pas vivre pendant 1 semaine avec le poid d'un bugsur la conscience ^^") je vais maintenant pouvoir savourer mes vacances^^ ciaoooooo!!!!!!!!!!!!!!! xD
Afficher les 17 commentaires

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.