Ordenar por fecha reciente una galería de imágenes dinámica.
Publicado por Jesús (1 intervención) el 23/05/2017 18:01:57
Espero que me ayuden, porque no doy con ello y no sé como gestionar el $this->files
Tengo la galería ya terminada y lo último que me falta es ordenar las fotos por fecha para que primero se muestren en la galería las últimas fotos subidas. Gracias de antemano.
Esta otra funciona perfecta pero la gestiona un foreach
Tengo la galería ya terminada y lo último que me falta es ordenar las fotos por fecha para que primero se muestren en la galería las últimas fotos subidas. Gracias de antemano.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
class gallery {
var $files = array();
var $path;
function loadFolder($path){
$this->path = $path;
//---Guardar en un arreglo todos los archivos en el directorio
$folder = opendir($this->path);
while ($fil = readdir($folder)) {
//---Si no es un directorio
if(!is_dir($fil)){
$arr = explode('.', $fil);
if(count($arr) > 1){
//---Ir guardando los nombres en un arreglo
$this->files[] = $fil;
}
}
}
//---Cerrar el directorio
closedir($folder);
//---Ordenar alfabeticamente el arreglo. Aquí me bloqueo con el $this->files
sort($this->files);
}
function show($area = 500, $width = 100, $space = 10){
//---Crear la galería con los nombres de todos los archivos
$total = count($this->files);
$cont = 0;
echo '<div name="xx" style="width:'.$area.'px">';
//---Situar los thumbnails
for($i = 0; $i < $total; $i++){
echo '<div style="width:'.$width.'px; float:left; padding-right:'.$space.'px; padding-bottom:'.$space.'px;"><a href="'.$this->path.'/'.$this->files[$i].'" rel="lightbox"><img src="show_thumb.php?src='.$this->path.'/'.$this->files[$i].'&width='.$width.'" width="'.$width.'" height="'.$width.'" border="0"></img></a></div>';
}
?>
<script language="javascript">
$(document).ready(function(){
$("a[rel = 'lightbox']").lightBox();
});
</script>
<?php
echo '</div>';
}
}
?>
Esta otra funciona perfecta pero la gestiona un foreach
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
$directorio="galley_images";
if ($gestor = opendir($directorio))
{
# ponemos los valores en un array para poder ordenarlos
$list=array();
while (false !== ($arch = readdir($gestor)))
{
if ($arch != "." && $arch != "..")
{
$list[$arch]=filemtime($arch);
}
}
# ordenamos el array
arsort($list);
# mostramos el contenido del array
echo "<ul>";
foreach($list as $fileName=>$time)
{
echo "<p>
<img src='$directorio/$fileName' width='20' height='20'>
<a target='_blank' href=\"".$directorio."/".$fileName."\">".$fileName." (".date("d/m/Y H:i:s",$time).")</a>
</p>\n";
//(".date("d/m/Y H:i:s",$time).")
}
echo "<ul>";
closedir($gestor);
}
?>
Valora esta pregunta
0