Foros del Web » Programando para Internet » PHP »

Simplificar codigo

Estas en el tema de Simplificar codigo en el foro de PHP en Foros del Web. Saludos. Estoy intentando crear un carrusel de fotos que segun la opcion seleccionada en un formulario me muestre las fotos de una fuente o de ...
  #1 (permalink)  
Antiguo 04/05/2011, 12:01
 
Fecha de Ingreso: mayo-2011
Mensajes: 11
Antigüedad: 12 años, 11 meses
Puntos: 0
Simplificar codigo

Saludos. Estoy intentando crear un carrusel de fotos que segun la opcion seleccionada en un formulario me muestre las fotos de una fuente o de otra. La idea que tengo (que me imagino habra una forma más sencilla de hacerla ya que mi nivel de php es muy bajo) es meter en 7 arrays el contenido de siete carpetas que contienen los archivos de imagenes. Una vez filtrado el contenido lo paso a un array en javascript y aqui viene mi petición: ¿Existe alguna forma de hacerlo más sencillo que como lo tengo hecho, con algun tipo de bucle?. Gracias



var tenerife = new Array();
var laspalmas = new Array();
var lapalma = new Array();
var hierro = new Array();
var gomera = new Array();
var fuerte = new Array();
var lanza = new Array();
<?php

function filtrar($elemActual) {
return ($elemActual != "." && $elemActual != "..");
}

//TENERIFE
$filetfn=scandir("carrusel/fotos/tenerife/");//LEO LA CARPETA Y ALMACENO EL CONTENIDO
$filetfn = array_filter($filetfn, "filtrar"); //ELIMINO EL . Y .. JUNTO CON ESPACIOS VACIOS
$filetfn = array_values($filetfn);//ELIMINO LOS INDICES VACIOS DEJADOS POR EL PASO ANTERIOR
for($i=0;$i<count($filetfn); $i++)//PASO DE VALORES ENTRE ARRAY PHP Y ARRAY JS
{
echo "tenerife[$i]='".$filetfn[$i]."';\n";
}


//LAS PALMAS
$filelps=scandir("carrusel/fotos/laspalmas/");
$filelps = array_filter($filelps, "filtrar");
$filelps = array_values($filelps);
for($i=0;$i<count($filelps); $i++)
{
echo "laspalmas[$i]='".$filelps[$i]."';\n";
}
//LA PALMA
$filelpa=scandir("carrusel/fotos/lapalma/");
$filelpa = array_filter($filelpa, "filtrar");
$filelpa = array_values($filelpa);
for($i=0;$i<count($$filelpa); $i++)
{
echo "lapalma[$i]='".$$filelpa[$i]."';\n";
}
//EL HIERRO
$filehi=scandir("carrusel/fotos/hierro/");
$filehi = array_filter($filehi, "filtrar");
$filehi = array_values($filehi);
for($i=0;$i<count($filehi); $i++)
{
echo "hierro[$i]='".$filehi[$i]."';\n";
}
//LA GOMERA
$filego=scandir("carrusel/fotos/gomera/");
$filego = array_filter($filego, "filtrar");
$filego = array_values($filego);
for($i=0;$i<count($filego); $i++)
{
echo "gomera[$i]='".$filego[$i]."';\n";
}
//FUERTEVENTURA
$fileft=scandir("carrusel/fotos/fuerteventura/");
$fileft = array_filter($fileft, "filtrar");
$fileft = array_values($fileft);
for($i=0;$i<count($fileft); $i++)
{
echo "fuerte[$i]='".$fileft[$i]."';\n";
}
//LANZAROTE
$filelz=scandir("carrusel/fotos/lanzarote/");
$filelz = array_filter($filelz, "filtrar");
$filelz = array_values($filelz);
for($i=0;$i<count($filelz); $i++)
{
echo "lanza[$i]='".$filelz[$i]."';\n";
}
?>
  #2 (permalink)  
Antiguo 04/05/2011, 23:31
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Simplificar codigo

Bueno, no necesitas un array para cada galeria, mas bien, solo almacena los nombres de galeria validos, como sugerencia que sea del tipo directorio => Nombre para mostrar:

Código PHP:
Ver original
  1. $galerias = array(
  2.     'tenerife' => 'Tenerife',
  3.     'laspalmas' => 'Las Palmas',
  4. );

El uso que le puedes dar a esa matriz es mostrar las galerias disponibles, con su respectivo enlace, y verificar lo que debes mostrar:

Código PHP:
Ver original
  1. <?php
  2. // Verificas lo que desea ver el usuario
  3. $galeria = (isset($_GET['galeria'])) ? $_GET['galeria'] : '';
  4.  
  5. // Existe la galeria?
  6. if( ! isset($galerias[$galeria])) {
  7.     die('No existe, intenta nuevamente.');
  8. }
  9.  
  10. // Leer archivos
  11. $files = scandir("carrusel/fotos/$galeria");
  12.  
  13. // Mostrar archivos
  14. foreach($files as $file) {
  15.      // Aqui debes verificar que el archivo tenga la extension adecuada (imagen)
  16.      // Y despues mostarlo
  17.     echo "<img sr=\"$file\" alt=\"Carrusel\" class=\"clase_css_para_carrusel\" />\n";
  18. }
  19.  
  20. // Al final solo activas el carrusel
  21. ?>
  22. <script type="text/javascript">
  23. funcion_para_activar_carrusel_por_clase_css();
  24. </script>
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 05/05/2011, 04:35
 
Fecha de Ingreso: mayo-2011
Mensajes: 11
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Simplificar codigo

Intentare lo que me has sugerido, aunque el enfoque que estaba usando es distinto. Lo que estoy haciendo es capturar todos los archivos disponibles en php y una vez metidos en los array pasarlos a javascript y procesar el formulario con control de eventos en los radio buttons y asi recargar el carrusel de fotos dependiendo de la seleccion.

Etiquetas: simplificar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:23.