Feb 19

La meta del proyecto es generalizar todos los procesos de creación de una web para que sea más fácil empezar un proyecto de un sitio con todo lo que necesitemos gracias al uso de varias herramientas, la más nueva de ellas es el prototipo de generador con PHP/GTK zenphp, que se basa en la creación de proyectos como el de la Asociación Zen de Andalucía o el Proyecto Splatter. He estado realizando algunas modificaciones para tenerlo todo a punto…

Nuevos cambios:
- modelo de datos
- funciones de ficheros

Lo que podemos hacer ahora con los nuevos cambios es, un listado de imágenes como este:

 

<ul>
  <li>
      <a target="_blank" href="/media/galerias/logo2.jpg">
       <img width="23" height="23" border="0" src="/media/galerias/logo2.jpg"/>
      </a>
      <input type="checkbox" value="logo2.jpg" name="borrar_imgs[]" id="logo2.jpg"/>
  </li>
  <li>
     <a target="_blank" href="/media/galerias/logo3.jpg">
      <img width="23" height="23" border="0" src="/media/galerias/logo3.jpg"/>
     </a>
     <input type="checkbox" value="logo3.jpg" name="borrar_imgs[]" id="logo3.jpg"/>
  </li>
</ul>

asi se pueden ver/seleccionar para borrar, y ahora un mecanismo para añadirlas:

 

<div id="imagenes">
 <input name="imagenes[]" id="imagen" type="file"><br>
</div>
<a href="javascript:anadirImagen();"><img src="img/boton_anadir.gif" border="0"></a>

Se añaden dinámicamente con una función JavaScript simple como esta:

 

 

<script language="JavaScript" type="text/javascript">
var items = 1;
function anadirImagen(){
 div=document.getElementById("imagenes");
 img=document.getElementById("imagen");
 items++;
 itemnuevo="<b><label for=\"imagen"+items+"\"> Nueva Imagen " + items + "</label>: </b>";
 itemnuevo+="<input type=\"file\" id=\"imagen"+items+"\" name=\"imagenes[]";
 itemnuevo+="\"><br>";
 nodonuevo=document.createElement("span");
 nodonuevo.innerHTML=itemnuevo;
 div.insertBefore(nodonuevo,img);
}
</script>

y ahora, lo único que queda es la comunicación con PHP (todo el trabajo ha estado en diseñar el formulario y el JS :)

 

<?php
function guardar_imagenes($actual){
        $errores = "";
        zen___carga_funciones('zen_ficheros');

        if (is_array($_REQUEST['borrar_imgs']))//se marcó alguna imagen para borrar?
         $actual = array_diff($actual,$_REQUEST['borrar_imgs']);
        $array = zen_serializar(array_merge($actual,zen_guardarFicheros("imagenes",ZF_DIR_PPAL.'media/galerias/',$errores)));

        if (!empty($errores)) {
            echo $errores;
            return zen_serializar($actual); //dejar los datos como estaban
        } else {
            return $array;
        }
    }
?>

El parámetro $actual son los datos que tenia, para que no se repitan, entonces podemos obetenerlos de la siguiente forma:

 

<?php
$_REQUEST['listado'] = guardar_imagenes(
 zen_deserializar($aplicacion->bd->seleccion_unica("listado from galerias where idg=".intval($_REQUEST['idg'])))
);
?>
Compártelo

Deja tu comentario

Close
E-mail It