Newsgroup: it.comp.www.php
Titolo: Riordinare items in gallery

Sto realizzando una gallery di immagini basata su PHP/MySQL (nessuna 
pretesa di originalita', e' solo una grande occasione per studiare). Mi 
trovo ad affrontare un problema che non so risolvere: vorrei 
implementare una funzione che permetta all'amministratore di riordinare 
le immagini all'interno di una gallery, ad esempio prendendo l'immagine 
numero 22 per farla diventare la numero 1 della lista.
Che sistema adottare?
Grazie per i suggerimenti!!!
-- 
Falco Stellare - 
falco.ste...@graphicside.it
<< Togli il TAPPO per rispondermi >>

 
se è un array..
sort();
se è su db ORDER..
se è solo per studiare..
crea tu una funzione bubble sort..
-- 
www.iuz-lab.info

 Che sistema adottare?
Se l'ordine di visualizzazione lo decide l'amministratore, puoi creare un
file di testo (o una tabella visto che puoi scomodare MySQL) in cui scrivi i
nomi delle immagini nello stesso ordine in cui vuoi che vengano
visualizzate, o comunque una soluzione simile. Se invece l'ordinamento deve
essere effettuato in base al nome, beh la soluzione te l'ha già data iuz.

 se è su db ORDER..
Ehm, d'accordo che sto studiando, ma sono un pochettino oltre il livello 
dell'absolute beginner... :-)
Il sorting su ORDER BY non e' quello che mi serve nell'immediato, io 
devo prima imporre l'ordine di visualizzazione dei record in base alle 
preferenze arbitrarie dell'amministratore, che scavalcano l'ordine BY id 
o BY qualsiasi altro parametro impostato al momento dell'inserimento nel 
database.
Stasera mentre sonnecchiavo davanti alla tv ho pensato ad una possibile 
soluzione basata sui pesi relativi di ciascun item.
In sostanza, ragionando simbolicamente, al momento dell'inserimento nel 
database ogni record e' uguale a tutti gli altri, ed e' dotato di un 
parametro "weight" impostato a 0; in questo momento l'ordine di 
visualizzazione puo' essere regolato da un ORDER BY eseguito sull'ID 
(DESC) di ciascun record, autoincrementante come al solito.
Se poi l'amministratore decide arbitrariamente di voler l'immagine N 
visualizzata in cima alla lista, bastera' incrementarne di un punto il 
valore di weight, e poi effettuare un sorting dei record tramite ORDER 
BY weight DESC id DESC.
Un'ulteriore successiva scelta di una nuova immagine da mettere in cima 
alla lista non fara' altro che controllare il valore di weight della 
precedente capolista e incrementarlo di uno nella nuova capolista.
Ora mi metto anche a ragionare sulla soluzione proposta da Iw7 :-)


 
scusa se sono partito col presupposto che tu fossi un 'absolute beginner',
ma non potevo sapere..
cmq la soluzione da te descritta è già presente in molti sistemi..
che ordinano in base ad un campo priorità decisa dall'amministratore e con
un secondo campo che solitamente è o la chiave primaria o per citarne uno
il classico campo cognome..
-- 
www.iuz-lab.info

 il classico campo cognome..
Ottimo, quindi ho riscoperto l'acqua calda :-) Ho tentato di fare 
ricerche su Google relativamente a quest'argomento, ma senza riuscire a 
cavare un ragno dal buco. Ieri sera ho avuto questa sorta di 
illuminazione, ho fatto una rapida prova e devo dire che parrebbe 
funzionare.
En passant, scrivendo il codice ho messo giu' alcune subquery (sulle 
macchine di sviluppo ho MySQL 4.1) per poi ricordarmi che il server che 
ospitera' il lavoro (Seeweb ottimo e massimo) ha solo la versione 4.0 a 
disposizione, quindi niente subquery... Domani rompo le scatole 
all'assistenza :-)


Beh, problema risolto! :-)
L'idea dei pesi relativi si e' dimostrata funzionante, ho appena 
terminato di scrivere tutto il codice e ora la gallery e' pronta e 
funzionante. Tra poco termino anche la stesura del CSS di layout e 
formattazione, e il pacchetto e' pronto per la consegna al cliente :-)
In pratica si tratta di un progetto abbastanza sofisticato dedicato ad 
un fotografo professionista, una sito personale dinamico dotato di 
backoffice multiutente per le seguenti funzioni: news attivita', 
gestione amministratori con userlevel, image gallery pubbliche e private 
con password, pubblicazioni, link utili e scambio link, area download 
con autenticazione, gestione area sponsor, gestione area intranet per 
collaboratori e redazioni internazionali, statistiche di accesso.
La gallery, che e' il modulo-novita' all'interno del pacchetto, e' 
dotata delle funzioni piu' comuni (mi sono dato un'occhiata intorno per 
vedere cosa offre il mercato), insieme ad alcune espressamente richieste 
dal cliente finale, soprattutto relative alla gestione di gallery 
private non accessibili direttamente dal versante pubblico del sito web, 
da destinare al lavoro con le varie redazioni per scambio anteprime, 
consegna lavori finali, ecc. ecc. Insieme c'e' un'area di lavoro per i 
collaboratori, dove si puo' fare scambio file, gestione progetti e 
timeline management, messaggistica privata, ecc.
una suite completa, insomma, e modulare per poterla adattare alle 
diverse necessita' dei diversi clienti :-) Appena va online (qualche 
settimana, il tempo di definire col cliente il template per il versante 
pubblico) vi faccio avere il link (se vi interessa), per vedere che 
pasticci combiniamo qui in GraphicSide anche il sabato e la domenica 
invece di andare al mare :-)
Ora resta solo da trovare il tempo per mettere online una demo sul 
nostro sito, sono mesi che diciamo di farlo ma non ci riusciamo mai...
Vabbuo', ora vado a dormire...


 nostro sito, sono mesi che diciamo di farlo ma non ci riusciamo mai...
Sono solo uno studente autodidatta, ma sono anche molto curioso, quindi mi
farebbe veramente piacere "rubarti" qualche idea.
Resto in attesa del link della demo.
Ciao e a presto.

 Resto in attesa del link della demo.
Ci vorra' un po' di tempo... In ogni caso non credo di aver inventato 
niente di veramente nuovo, alla fine ci sono tanti CMS in giro oggi che 
sono veramente molto belli. Diciamo che come filosofia di base noi 
preferiamo avere un prodotto interamente nostro, sviluppato 
internamente, e quindi conosciuto fino all'osso, in modo da poter 
intervenire sempre con il massimo della sicurezza e della tranquillita', 
e volendo poterlo personalizzare facilmente in base alle richieste dei 
vari clienti. Attualmente e' il nostro prodotto di punta per quanto 
riguarda il web design dinamico, un settore in cui vorremmo moltiplicare 
le nostre forze per l'anno che sta arrivando (in pratica, se siete 
interessati iniziate a mandare i vostri curriculum ;-)


 interessati iniziate a mandare i vostri curriculum ;-)
Se non ci sono altri intoppi, a dicembre verrň "scarcerato" dal Politecnico,
e allora sě che vedrai arrivare anche il mio curriculum!!!
Ciao ciao e a presto.