Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/09/2008, 20:21
Avatar de ElJavista
ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: Cómo puedo paginar este script?

Interesante tu código, muestras una galería de acuerdo a un lugar y una fecha, en base a estos datos abres una carpeta determinada donde está la galería desde donde se imprimen archivo por archivo los thumbs de la galería y mediante un pop up muestras la ampliación. Debería decirte amigo, que no debes usar los pop ups para este propósito, yo antes lo hacía, pero resulta que ahora hay bloqueadores de ventanas emergentes y no hablo del predeterminado por Internet Explorer sino de programas que parchan al Internet Explorer y que le prohibe abrir cualquier ventana emergente, ya que de por si solo el I.E. bloquea pop ups pero no en todos los casos (generalmente cuando estas ventanas emergentes son activadas al cargar la página). Bueno, eso no es lo que preguntabas, pero solo fue un comentario.

Ahora a tu pregunta en sí: hacer un páginador en esas circunstancias no es tarea fácil, porque no hay una base de datos a la cual llamar y hacer un limit, sin embargo todo tiene su truco y te mostraré uno que puede servir:

Tu imprimes tu galería de este modo:

while ($Archivo=readdir($ContenidoDir)) {
if ($Archivo == "." || $Archivo == ".." ) continue; ?>
.....

y está muy bien, pero para hacer el páginador necesitamos saber el número total de imágenes contenido en esa carpeta, eso se puede conseguir si hicieras una función que pone cada archivo de tu carpeta en un array, la función sería esta:

Código PHP:

function getFiles($dir) {
              
$fdir opendir("$dir"); 
              
$files = array();
  
              while (
$archivo readdir($fdir))  {
                       if (
$archivo != "." &&  $archivo != ".." $files[] = $archivo;        
              }
              return 
$files;
}

 
// Ahora bien el código para imprimir tu galería sería así:

  
if (isset($_GET["nn"])) $nn $_GET["nn"];
  else 
$nn 1;

  
$nim 10;  // Número de fotos por página

  
$files getFiles($DirFotos);
  
$nImgs count($files);

  for (
$i 0$i $nImgs$i ++) {
           if (
$i >=  $nim * ($nn  1) && $i $nim $nn) {
              
// Aquí imprimes tus celdas con tus fotos
           
}  
   }

   
// Demás contenido ...
   // Al final deberás poner el paginador, eso se consigue de este modo:
   
   
$nPags ceil($nImgs $nim// Esto te da el número de páginas de la galería

    
for ($n 0$n $nPags$n ++) {
          if (
$n == $nn) echo "[$n]&nbsp";
          else echo 
"<a href=\"galeria.php?lugar=$lugar&dia=$dia&mes=$mes&ano=$ano&seccion=$seccion&nn=$n\">$n</a>&nbsp";
     } 
El código no está probado, pero ya la idea está dada, espero que te sirva.

Última edición por ElJavista; 10/09/2008 a las 20:42