Tableau décroissant pour galerie avec pagination
jpp78120
Messages postés
9
Statut
Membre
-
jpp78120 Messages postés 9 Statut Membre -
jpp78120 Messages postés 9 Statut Membre -
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> ';
}
?>
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> ';
}
?>
6 réponses
-
-
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. -
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 -
Re,
Avec ta proposition, aucune vignette ne s'affiche.
Tu as essayé en local ?
Cdt -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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 -
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.