mercoledì, ottobre 04, 2006

Progetto 3 - Galleria di immagini

Al blog mancava una galleria di immagini così, da buon programmatore "old-style" me ne son fregato di tutti i pacchetti preconfezionati e me ne son programmata una a modo mio..

Dunque.. per gestire una galleria di immagini le funzioni da gestire sono fondamentalmente 3.. immissione, visualizzazione e cancellazione delle immagini.

Ovviamente serve anche uno spazio web su cui caricare i files.

Come qualsiasi progetto che riguardi internet, il punto di partenza è il layout della pagina web finale che conterrà la galleria. Nel mio caso ho scelto di creare una tabella di 36 celle, in cui le 16 celle interne, unite, conterranno l'immagine ingrandita, mentre le restanti 20 le varie miniature.

Questa scelta condiziona la dimensione delle immagini memorizzate e delle relative mininature, rispettivamente a 640x480 punti le prime e 160x120 le seconde.

Quindi la cosa migliore da fare è salvare sul server le immagini direttamente con queste dimensioni.

Andiamo per gradi:

La funzione di immissione è gestita da un semplice form con cui si identifica l'immagine da caricare e si scrive un testo che costituirà la didascalìa della foto.
Il form passa poi i dati ad una pagina php che si occupa del salvataggio dei dati sul server.
Il salvataggio avviene in tre fasi:

prima fase: si salva l'immagine con dimensioni di 640x480 punti che sarà l'immagine ingrandita.
nel caso di foto verticali si tiene l'altezza di 480 punti e si ridimensiona la larghezza
seconda fase: si salva la miniatura nel formato 160x120 punti.

terza fase: si salva un file di testo che conterrà la didascalìa della foto.

Ai files viene preposto un numero progressivo, che serve per ordinare cronologicamente i files in base all'ordine di immissione.


Il cuore della galleria è la pagina di visualizzazione, che svolge numerose funzioni:

Potendo visualizzare solo 20 immagini per pagina, deve determinare in quale pagina si sia, visualizzare le relative immagini e gestire il cambio pagina.

Deve creare dinamicamente la tabella contenente le miniature, creando per ogni cella i link relativi alla miniatura, alla didascalìa e i comandi per visualizzare l'immagine ingrandita.

Deve provvederea creare le celle vuote della tabella, nel caso non ci fossero abbastanza immagini per riempirla.

Tutte queste funzioni vengono gestite abbastanza agilmente tramite php, tranne che per la funzione di visualizzazione dell'immagine ingrandita, gestita tramite un javascript.

Per quanto riguarda invece la fase di cancellazione, l'unica attenzione de porre è nella ricreazione dell'indice numerico per eliminare eventuali buchi e numeri doppi nelle aggiunte successive.
semplicemente, dopo aver eliminato i files ed averne ricavato il numero d'indice, si rinominano i files successivi, scalandone l'indice relativo di un'unità.

Il risultato finale è la galleria a cui si può accedere nella sezione Link!


3 commenti:

___sahara___ ha detto...

..javascript??form??...pagina??foto???io??....ma come parli!!!!eehehh...no giusto...magari stavolta ci provo da sola!!eheheh;-P

teo ha detto...

brava! anche se in effetti è la galleria che usi pure tu.. eheh

Anonimo ha detto...

Grande TEOOOO