Comunidad de diseño web y desarrollo en internet online

Función para ver varios lightbox

Citar            
MensajeEscrito el 13 Mar 2012 09:58 am
Hola, he visto vuestra clase para crear una galería de imágenes dinámica en Php; yo tengo que crear dinámicamente una galería por cada carpeta de imágenes que haya, mostrando sólo la primera foto de cada carpeta junto con una descripción de esa galería, es decir:
descripción-------foto
descripción-------foto
descripción-------foto
...
Os agradecería que me pudiéseis explicar como puedo hacerlo. Yo he estado intentando crear una función para hacerlo pero no va, aquí os envío lo que tengo, lo probé con dos funciones:

Código PHP :

function galeria2($ruta) {
//extensiones validas   
    $arr_ext=array("jpg","png","gif", "JPG");
//directorio donde se encuentran
//$ruta="imagenes/coches/";
    $mydir=opendir($ruta);
//leer archivos
    while($archivo=readdir($mydir)) {
        $ext=substr($archivo,-3);
        $vehiculo=substr($archivo,0,strrpos($archivo,"."));
//si la extension del archivo es correcta muestra la imagen
        if(in_array($ext,$arr_ext)) {
            echo '<a href="imagenes/coches/'.$archivo.'" rel="lightbox[roadtrip]" title="'.$vehiculo.'"><img src="imagenes/coches/'.$archivo.'" alt="'.$vehiculo.'" width=150 height=100 margin-right: 1px /></a>';
        }
    }
}


Y la otra:

Código PHP :

function galeria() {
    $tabla="<table>";
    $conexion = Conectarse();
    if (!$conexion) {
        die('Could not connect: ' . mysql_error());
    }
    $resultado = mysql_query("SELECT matricula, equipamiento FROM vo");
    while($row = mysql_fetch_array($resultado)) {
        echo $row["matricula"]."<br>";
//extensiones validas
        $arr_ext=array("jpg","png","gif", "JPG");
//directorio donde se encuentran
         $ruta="imagenes/coches/".$row["matricula"]."/";
         $mydir=opendir($ruta);
//leer archivos
         $noencontrado=true;
          while($noencontrado) {
              $archivo=readdir($mydir);
              $ext=substr($archivo,-3);
              $vehiculo=substr($archivo,0,strrpos($archivo,"."));
              if(in_array($ext,$arr_ext))
                 $noencontrado=false;
          }
//si la extension del archivo es correcta muestra la imagen
    echo "<a href='#' onclick=window.open('galeria.php?ruta=imagenes/coches/".$row["matricula"]."/"."','fotos', 'height=200, width=200') rel='lightbox[roadtrip]' title='".$vehiculo."' >ssqssq</a>";   
    echo $row["equipamiento"]."<br>";       
    }
    $tabla=$tabla."</table>";
    mysql_free_result($resultado);
    mysql_close($conexion);
    echo $tabla;
}

Ninguna de las dos hace nada.¿Podéis ayudarme?. Gracias. Saludos. :oops:

Por solilopi

16 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 14 Mar 2012 02:52 pm
pues tu funcion galeria2 esta bien pero creo que tienes problemas para validar las extensiones cambia lo siguiente

Código PHP :

function galeria2($ruta) {
//extensiones validas   
    $arr_ext=array("jpg","png","gif");
//directorio donde se encuentran
//$ruta="imagenes/coches/";
    $mydir=opendir($ruta);
//leer archivos
    while($archivo=readdir($mydir)) {
        $ext=substr($archivo,-3);
        $vehiculo=substr($archivo,0,strrpos($archivo,"."));
//si la extension del archivo es correcta muestra la imagen
        if(in_array(strtolower($ext),$arr_ext)) {
            echo '<a href="imagenes/coches/'.$archivo.'" rel="lightbox[roadtrip]" title="'.$vehiculo.'"><img src="imagenes/coches/'.$archivo.'" alt="'.$vehiculo.'" width=150 height=100 margin-right: 1px /></a>';
        }
    }
}

y si usas php5.2.17 en adelante puedes usar las SPL

Código PHP :

function galeriaPOO($ruta)
{
   $extensiones_validas = explode(",","gif,jpg,png,jpeg");
   foreach(new DirectoryIterator($ruta) as $child)
   {
      if(!$child->isFile()){continue;}
      $extension = pathinfo($child->getFileName(),PATHINFO_EXTENSION);
      //lo convertimos a minusculas para que in_array no tenga problemas
      $extension = strtolower($extension);
      if(in_array($extension,$extensiones_validas))
      {
         echo $child->getFilename();
         echo "\n";
      }
   }
}

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.