Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/11/2003, 16:51
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

Lo primero seria que el bucle que recorre el directorio no muestre directamente la imagen, sino que guarde los nombres de los ficheros en un array. En funcion del parametro 'pagina', mostrarias los elementos del array correspondientes a (pagina-1)*5 hasta 5 despues (suponiendo pagina con los valores 1,2,3, ... y el array empezando en 0). Luego si quedan elementos, pones el link a (pagina+1) que seria la siguiente pagina. Y pondras el link a (pagina-1) si pagina>1.

Mas o menos el codigo seria:
Código PHP:

<?php

include("../gallery.txt");

function 
preview (){

// $dir = directorio de las fotos

$dirroot="../fotos/290903/";

$dir "../fotos/290903/preview/"

// Abre un directorio conocido y lee el contenido

$imagenes=array(); //inicilizamos el array

if (is_dir($dir)) { 

    if (
$dh opendir($dir)) { 

        while ((
$file readdir($dh)) !== false) {

          if (
$file != "." && $file != ".."

          {
 
               
$imagenes[]=$file// añadimos la imagen

          
}  

        } 

        
closedir($dh); 

    } 

}

$totalImagenes=count($imagenes);

if (isset(
$_GET['pagina'])) {
  
$pagina=$_GET['pagina'];
} else {
  
$pagina=1;
}

if (
1>$pagina$pagina=1//paranoia de seguridad
$inicio=($pagina-1)*5;
if (
$inicio>=$totalImagenes) { //mas paranoia
  
$pagina=1;
  
$inicio=0;
}
$final=$inicio+5;
if (
$final>$totalImagenes$final=$totalImagenes;  // todavia mas paranoia

for ($i=$inicio;$i<$final;$i++) {
          echo 
"<a href=javascript:doPic('$dirroot".$imagenes[$i].")>

          <img src='$dir"
.$imagenes[$i]."' height='75' border='1'/></a>";

}

if (
1<$pagina) echo '<a href='pagina.php?pagina='.($pagina-1).'">Anterior</a>';
if ($final<$totalImagenes) echo '<a href='pagina.php?pagina='.($pagina+1).'"
>Siguiente</a>;
}

preview();

?>
No aseguro que el codigo este libre de errores, ya que lo he creado segun escribia la respuesta. Esta sin probar. Prueba con u directorio con 0 imagenes, con 5, con 8, con 9, con 15, con 16, por ejemplo. Son importantes las pruebas con cantidades multiples de 5 (tu limite por pagina) para comprobar que no crea enlaces a paginas vacias (por ejemplo, un directorio con 5 imagenes que ponga enlace a pagina siguiente seria un error).

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.

Última edición por josemi; 13/11/2003 a las 14:26