PHP - Ordenar por fecha reciente una galería de imágenes dinámica.

 
Vista:

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.

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder