miércoles, 24 de diciembre de 2008

Simple Galeria de imagenes con PHP


En los ultimos dias estube buscando por internet una galeria de imagenes lo mas basica posible donde el usuario pudiera ver un conjunto de "vistas miniaturas" (preview) de las imagenes y seleccionar la que quisieran ver mas grande. Eso era todo.

En mi etapa de busqueda di con una libreria que hacia exactamente lo que yo queria, me parecio excelente, la pude conseguir en la pagina http://bolgallery.free.fr/. Esta libreria permite colocar una serie de imagenes en un directorio "images", a partir de estas imagenes la galeria genera las vistas en miniatura de las imagenes, ademas permite generar dos tipos de vistas miniatura que explicare mas adelante. Es muy facil de configurar e instalar.

Cuando vi esta galeria decidi realizarle unas mejoras para permitir el uso de multiples etiquetas sobre una foto, una base de datos para llevar estadisticas de la cantidad de veces que se ha visto una foto, subir las fotos remotamente, aplicar etiquetas, etc.


En resumen la galeria que mejore ofrece las siguientes funcionalidades:

  1. Permite asignar nuevas o viejas etiquetas a una fotografia.
  2. Permite agregar fotografias de manera remota y aplicarle las etiquetas dinamicamente.
  3. Permite visualizar conjuntos de imagenes a partir de la combinacion de una o mas etiquetas de manera simultanea, colocando la variable "labels" en el URL de la pagina igualada a las etiquetas deseadas separadas por comas. Ej: migaleria.php?labels=etiqueta1,etiqueta2,etiqueta3
  4. Genera dinamicamente las vistas previas de las fotografias subidas.
  5. Las vistas previas generadas pueden ser de dos tipos: Version a escala de la fotografia a visualizar o recorte aleatorio de una porcion de la fotografia (definido por el webmaster).
  6. Maneja estadisticas de las vistas o clicks que el usuario ha realizado para cad auna de las fotografias.
  7. Autenticacion de usuario para permitir que solo los usuarios autorizados (aministradores) puedan modificar las fotos. Para aprender mas sobre esto puedes ir a mi tutorial de autenticación de usuario.
Instalacion de la galería

Para su utilización no hace falta mas que colocar la carpeta "galeria" en cualquier directorio del servidor, la carpeta llamada "images" será donde se ubicarán todas las imagenes agregadas.

Luego se procede a crear la base de datos y tablas con el script bd.sql ubicado en el directorio raiz de la galeria.

El directorio donde se encontraría ubicada la galeria quedaria con los archivos index.php, admin.php, bd.sql, leeme.txt y las siguientes carpetas:

- images.
- autenticación.
- galeria_de_fotos.

Explicacion de los directorios:

-Images: Debe tener todos los permisos de escritura. Donde se irán guardando todas las imagenes de la galeria, las vistas previas de guardarán automaticamente dentro de este directorio en una carpeta llamada bolGallery.

- Autenticación: contiene todo el modulo para la logica de seguridad. esta carpeta no debe ser modificada. Contiene el archivo registro.php que tiene el formulario para la creación de un nuevo usuario, es importante mantener esta pagina bien oculta (o eliminarla una vez creado el usuario administrador) para que nadie pueda registrarse y modificar, subir o eliminar las fotos.

- Galeria_de_fotos: contiene dos paginas importantes:

1) index.php: Es el front de la galeria de imagenes, es decir, la pagina que verán lo usuarios finales, los que visiten la galeria, puede ser modificado a placer siempre que se mantenga la llamada a la funcion bolGallery del archivo bolGallery.php. El siguiente es un ejemplo de una llamada:
        include("bolGallery.php");
if(isset($_GET['labels']))
{
$array = split(",", $_GET['labels']);

bolGallery("../images/",$array, 6, 150, 150,1);
}
else
bolGallery("../images/",null, 6, 150, 150,1);

La funcion bolGallery recive los siguientes parametros:

a) URL de el directorio donde se encuentran las imagnes: esto no debe modificarse.
b) tablas de referencia: No debe modificarse.
c) cantidad de columnas que se quiere que tenga la galeria.
d) el ancho en pixeles de las vistas previas de la galeria.
e) el alto en pixeles de las vistas previas de la galeria.
f) un booleano que es "true" si se desea colocar una vista previa en tamaño escala de la imagen o "false" si se desea un recorte aleatorio de una porcion de la fotografia.

2) admin.php: El modulo de administrador, esa página no se debe modificar.

Espero que todo les funcione correctamente, cualquier duda no duden en entrar a mi pagina enviarme un correo a: aalejo@gmail.com. Para ver un ejemplo de la galeria en funcionamiento puedes hacer click aqui. Recuerda crearte un usuario para poder modificar las imagenes.

16 comentarios:

  1. Hola hermano me baje tu codigo ..y todo me anda bien me registro y too ..pero cuando me loqueo con mi cuentra creada en registro.php me sale el siguiente error:
    en la carpeta autenticacion\autenticacion.php:19y en la linea 40 del mismo achivo autenticacion.php ..xfa a k se debe eso:

    mi correo es charles_system@hotmail.com
    agregame si

    ResponderEliminar
  2. Hola Alejandro muy bueno tu aporte, pero queria saber si no tienes echa esa misma galeria pero con categorias.

    ResponderEliminar
  3. hola alejandro te mande un emails hace dias pero no me haz respondido,cuando tengas tiempo agradeceria tu ayuda.

    ResponderEliminar
  4. hola mer llamo sergio buenisimo tu galeria pero tengo una duda como cargo el sql en mi server hosting para que funcione uso el hostin miarroba.com por aora es o nomas
    gracias
    delta9sio30@hotmail.com

    ResponderEliminar
  5. hola soy sergio y estoy sigiendo tu galeria d eimagenes , quisiera saver si le podes agregar descripciones como para una galeria de autod de auna gencia asi el dueño podria agregar las fotitods de autos y ponerle descripciones como precio modelo ETC.
    estaria genial eso es lo unico que le ari afalta
    si podes actualisarle te agradesseria
    mi mail es delta9sio30@hotmail.com

    ResponderEliminar
  6. hola alejandro estuve viendo los codigos y ya adapte el archivo de conexion los 2 que vienen en este, el unico problema que me presenta es que no me deja subir imagenes mmm no se si me podrias ayudar oh por cierto esta con madre el tutorial lastima que no lo halle antes xD mi correo es abraham_697@hotmail.com por si me puedes solucionar la duda

    ResponderEliminar
  7. bueno eso es en una conexion a mysql ede otra pc y ya cundo pongo yo mismo el host me marca el error que al primer sujeto que comento a que se debera?

    ResponderEliminar
  8. hola me parecen buenos tus tutoriales estre siguiendo grax por compartir saludos mexico df

    ResponderEliminar
  9. provoca un error despues de registrado el usuario no manda al link de login y aun selecionandolo en el navegaodr , ¿?

    ResponderEliminar
  10. hola amigo estoy haciendo una tienda virtual y estoy utilizando mysql para guardar mis datos pero quiero guardar mis imagenes para mostrar la imagenes desde la base de datos pero no puedo hacerlo y lo he intentado de todas forma, si tienes alguna ayuda favor de enviarme a: giraldy@gmail.com y gracias

    ResponderEliminar
  11. Hola Men, gracias por tus videos, pero tengo un problema, cuando subo en mi dominio, que sale The requested URL /galeria_de_fotos/function.mysql-connect was not found on this server.

    Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
    Apache/2.2.16 (Unix) mod_ssl/2.2.16 OpenSSL/0.9.8m DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 Server at alexiapaez.lidercreativeweb.com Port 80
    mi mail es lidercreativeweb@hotmail.com
    Ayudame por favor!!
    gracias

    ResponderEliminar
  12. hola me parece genial tu galeria la he bajado y todo me va bien solo que al momento de subir la imagen me aparace el siguiente error

    C:\wamp\www\galeria\galeria_de_fotos\operaciones.php on line 85

    me serviria de mucho tu ayuda
    disculpa por publicar como anonimo

    ResponderEliminar
  13. oye hermano estoy en cero con php y mysql por lo que me he bajado la galeria todo ha corrido bien,pero me gustaria contar con tu ayuda,quiero
    agregarle unos datos a la imagen como el nombre de la persona de la imagen etc, como te dije anteriormente estoy en cero en esto... enserio necesito ayuda con esto grax... lo agradecere mucho dejo mi correo
    LAMZ2310@HOTMAIL.COM

    ResponderEliminar
  14. hola alejandro he tenido problemas con la galaria, ya cree mi BD en WAMP server, ya descomprimi la carpeta que contiene los archivos, dentro del directorio donde se encuentra instalado mi WAMP server ( C:\wamp\www\galeria ). Bueno a la hora de querer registrarme me lanza un ERROR y es este:


    Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: NO) in C:\wamp\www\galeria\autenticacion\conexion.php on line 13
    Call Stack
    # Time Memory Function Location
    1 0.0014 678280 {main}( ) ..\registrado.php:0
    2 0.0025 683992 require( 'C:\wamp\www\galeria\autenticacion\conexion.php' ) ..\registrado.php:3
    3 0.0025 684752 mysql_connect ( ) ..\conexion.php:13


    QUE PUEDO HACER?
    ya cheque el archivo "conexion.php" y ya puse el nombre de mi HOST,MI USUSRIO Y MI CONTRACEÑA....
    AYUDA!

    ResponderEliminar
  15. holA ME GUSTARIA SAVER como agregarle ventanas modal.. con web 2.0

    ResponderEliminar
  16. hola descargue el codigo pero me marca un error en el codigo de sql auxilio por favor como puedo solucioanr esto

    ResponderEliminar