Tableau décroissant pour galerie avec pagination

Fermé
jpp78120 Messages postés 9 Date d'inscription mercredi 18 septembre 2013 Statut Membre Dernière intervention 3 mars 2015 - 18 sept. 2013 à 10:22
jpp78120 Messages postés 9 Date d'inscription mercredi 18 septembre 2013 Statut Membre Dernière intervention 3 mars 2015 - 18 sept. 2013 à 17:48
Bonjour à tous,

Je souhaiterais pour ce code qui fonctionne très bien mais dans un ordre "bizard", afficher les vignettes, par ordre numérique décroissant, du plus grand au plus petit, le nom de mes vignettes (et images) se nommant par exemple 000.jpg, 001.jpg, 005.jpg, 013.jpg, 074.jpg, 125.jpg, etc . Le nom comportant tjrs 3 chiffres + une extension en jpg ou gif ou png mais pas de tri sur l'extension mais que sur le nom 001, 005, 013, 074, 125, etc...

Si quelqu'un peut m'aider, merci à tous, car je n'ai pas trouvé de solution.


<?php
$max_images = 36; // Nombre d'images à afficher
$break = 8;
$image_path = 'images/'; // Dossier d'images
$thumb_path = 'thumbs/'; // Dossier des miniatures
$list_ext = array('jpg', 'png','gif'); // Liste des extensions autorisées


$folder = opendir($image_path);
while($file = readdir($folder)){
$ext = explode('.', $file);
$ext = strtolower($ext[count($ext) - 1]);
if (in_array($ext,$list_ext)){
$list_images[] = $image_path . $file;
$list_thumbs[] = $thumb_path . $file;
}
}

$current_page = (!isset($_GET['page']) || empty($_GET['page'])) ? 1 : $_GET['page'];

$nb_pages = ceil(count($list_images) / $max_images);

// Affichage des images
echo'<table border="1"><tr>';
for($i = ($current_page - 1) * $max_images; $i < ($current_page - 1) * $max_images + $max_images; $i++) {
if($i < count($list_images)) {
if(file_exists($list_images[$i])) {
if($break == 8){
echo '<tr></tr>' ;
$break=0;
}
else{
$break++;
}
echo '<th><a href="'.$list_images[$i].'"><img src="'.$list_thumbs[$i].'"/></th></a>';
}
}
}


echo'</tr></table>'; {
}

// Affichage du pager
for ($i = 1 ; $i <= $nb_pages ; $i++) {
echo '<a href="'.$_SERVER['PHP_SELF'].'?page=' . $i . '">' . $i . '</a> ';
}
?>
A voir également:

6 réponses

gign44 Messages postés 124 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 22 octobre 2013 5
18 sept. 2013 à 10:29
Bonjour,
As-tu essayé avec la fonction de sorting ?
https://www.php.net/manual/fr/array.sorting.php
0
jpp78120 Messages postés 9 Date d'inscription mercredi 18 septembre 2013 Statut Membre Dernière intervention 3 mars 2015
18 sept. 2013 à 10:37
Bonjour gign44,

J'ai essayé :
$list_images[] = arsort($image_path) . $file;
$list_thumbs[] = arsort($thumb_path) . $file;

mais je pense avoir mal placé cette instruction dans le programme.

Si cette fonction est correcte, où dois-je la placer dans le programme,
n'étant qu'un néophyte en php.

Merci de ton aide.
0
gign44 Messages postés 124 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 22 octobre 2013 5
Modifié par gign44 le 18/09/2013 à 12:28
Bonjour,

Tu dois directement utiliser cette fonction sur ton tableau. Laisse donc les lignes suivantes puis après cela tu effectues le tri :

$list_images[] = $image_path . $file;
$list_thumbs[] = $thumb_path . $file;

$list_images=arsort($list_images);
$list_thumbs=arsort($list_thumbs);

Cordialement
0
jpp78120 Messages postés 9 Date d'inscription mercredi 18 septembre 2013 Statut Membre Dernière intervention 3 mars 2015
18 sept. 2013 à 15:50
Re,

Avec ta proposition, aucune vignette ne s'affiche.

Tu as essayé en local ?

Cdt
0
gign44 Messages postés 124 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 22 octobre 2013 5
18 sept. 2013 à 16:04
Je l'ai testé sur un tableau de 2 param ;) Donc pas assez.

effectue un print_r($list_images); avant d'utiliser le fonction sort puis après.
Tu verras comment cette fonction agit sur tes tableaux,
Cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jpp78120 Messages postés 9 Date d'inscription mercredi 18 septembre 2013 Statut Membre Dernière intervention 3 mars 2015
18 sept. 2013 à 16:14
toujours en désordre !

Array ( [0] => preview/093.jpg ) 11Array ( [0] => preview/089.jpg ) 11Array ( [0] => preview/038.jpg ) 11Array ( [0] => preview/076.jpg ) 11Array ( [0] => preview/000.png ) 11Array ( [0] => preview/016.jpg ) 11Array ( [0] => preview/078.jpg ) 11Array ( [0] => preview/057.jpg ) 11Array ( [0] => preview/058.jpg ) 11Array ( [0] => preview/086.jpg ) 11Array ( [0] => preview/111.jpg ) 11Array ( [0] => preview/123.jpg ) 11Array ( [0] => preview/140.jpg ) 11Array ( [0] => preview/080.jpg ) 11Array ( [0] => preview/062.jpg ) 11Array ( [0] => preview/063.jpg ) 11Array ( [0] => preview/085.jpg ) 11Array ( [0] => preview/138.jpg ) 11Array ( [0] => preview/075.jpg ) 11Array ( [0] => preview/134.jpg ) 11Array ( [0] => preview/068.jpg ) 11Array ( [0] => preview/081.jpg ) 11Array ( [0] => preview/053.jpg ) 11Array ( [0] => preview/046.jpg ) 11Array ( [0] => preview/333.png ) 11Array ( [0] => preview/012.jpg ) 11Array ( [0] => preview/137.jpg ) 11Array ( [0] => preview/031.jpg ) 11Array ( [0] => preview/090.jpg ) 11Array ( [0] => preview/109.jpg ) 11Array ( [0] => preview/091.jpg ) 11Array ( [0] => preview/135.jpg ) 11Array ( [0] => preview/044.jpg ) 11Array ( [0] => preview/055.jpg ) 11Array ( [0] => preview/010.jpg ) 11Array ( [0] => preview/098.jpg ) 11Array ( [0] => preview/130.jpg ) 11Array ( [0] => preview/049.jpg ) 11Array ( [0] => preview/026.jpg ) 11Array ( [0] => preview/084.jpg ) 11Array ( [0] => preview/128.jpg ) 11Array ( [0] => preview/036.jpg ) 11Array ( [0] => preview/087.jpg ) 11Array ( [0] => preview/007.jpg ) 11Array ( [0] => preview/066.jpg ) 11Array ( [0] => preview/028.jpg ) 11Array ( [0] => preview/119.jpg ) 11Array ( [0] => preview/113.jpg ) 11Array ( [0] => preview/040.jpg ) 11Array ( [0] => preview/035.jpg ) 11Array ( [0] => preview/045.jpg ) 11Array ( [0] => preview/136.jpg ) 11Array ( [0] => preview/106.jpg ) 11Array ( [0] => preview/056.jpg ) 11Array ( [0] => preview/001.jpg ) 11Array ( [0] => preview/126.jpg ) 11Array ( [0] => preview/009.jpg ) 11Array ( [0] => preview/002.jpg ) 11Array ( [0] => preview/006.jpg ) 11Array ( [0] => preview/120.jpg ) 11Array ( [0] => preview/017.jpg ) 11Array ( [0] => preview/023.jpg ) 11Array ( [0] => preview/117.jpg ) 11Array ( [0] => preview/143.jpg ) 11Array ( [0] => preview/048.jpg ) 11Array ( [0] => preview/067.jpg ) 11Array ( [0] => preview/039.jpg ) 11Array ( [0] => preview/061.jpg ) 11Array ( [0] => preview/115.jpg ) 11Array ( [0] => preview/094.jpg ) 11Array ( [0] => preview/033.jpg ) 11Array ( [0] => preview/245.gif ) 11Array ( [0] => preview/014.jpg ) 11Array ( [0] => preview/030.jpg ) 11Array ( [0] => preview/021.jpg )

et plus de vignettes qui apparait
0
gign44 Messages postés 124 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 22 octobre 2013 5
18 sept. 2013 à 16:37
bah tu m'étonnes, tu as une seule clé qui est zero. Ton code est faux là, tu ne l'as quand meme pas afficher dans une boucle ?
0
jpp78120 Messages postés 9 Date d'inscription mercredi 18 septembre 2013 Statut Membre Dernière intervention 3 mars 2015
18 sept. 2013 à 17:48
Ce programme fonctionne bien sauf dans un affichage bizard, pas de tri, et avec 1 seule clé.
Tu peux voir ce que ça donne sur http://www.darknebulae.fr/test/test_gal_2-0.php

Ce programme est déjà issu de ce site, voir :
https://forums.commentcamarche.net/forum/affich-21212946-faire-un-tableau-pour-galerie-avec-pagination

Si tu ne peux pas m'aider davantage, merci quand même.
0